server端

import socket
sk = socket.socket()
sk.bind(('127.0.0.1', 8010))
sk.setblocking(False) #
sk.listen()
conn_l = []
del_conn = []
while True:
try:
conn, addr = sk.accept() # 不阻塞,但是没人连我会报错
print('建立连接了:', addr)
conn_l.append(conn)
except BlockingIOError:
for con in conn_l:
try:
msg = con.recv(1024) # 非阻塞,如果没有数据就报错
if msg == b'':
del_conn.append(con)
continue
print(msg)
con.send(b'bye')
except BlockingIOError:
pass
for con in del_conn:
con.close()
conn_l.remove(con)
del_conn.clear()

client端

import time
import socket
import threading def func():
sk = socket.socket()
sk.connect(('127.0.0.1', 8010))
sk.send(b'hello')
time.sleep(1)
print(sk.recv(1024))
sk.close() for i in range(2):
threading.Thread(target=func).start()

最新文章

  1. C++11引用临时变量的终极解析
  2. systemctl命令
  3. Opencv step by step - 配置文件
  4. javaEE规范和SSH三大框架到底有什么关系
  5. Jquery焦点图实例
  6. 2013 ACM 通化邀请赛 A. Tutor
  7. 位bit——字节Byte???
  8. 【转】【React Native开发】
  9. A-frame_02
  10. 使用XRDP实现Windows远程桌面Linux系统
  11. JavaScript基础知识复习
  12. 玩转Ecs服务器之搭建Ftp
  13. 20172306 2018-2019-2 《Java程序设计与数据结构》第九周学习总结
  14. COCO数据集格式互换
  15. 注册COMDLG32.OCX方法
  16. APP网络优化篇
  17. 超实用!9个目前流行的MATERIAL DESIGN前端框架
  18. css outline实践研究
  19. 第3章:Hadoop分布式文件系统(2)
  20. [机器学习&数据挖掘]机器学习实战决策树plotTree函数完全解析

热门文章

  1. HTTP请求各参数详解
  2. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(6)之配置文件设置
  3. FFT NTT 错误总结(持续更新)
  4. 破解第一个程序----分析APK文件
  5. Struts2 控件标签
  6. win7下Oracle库imp导入dmp
  7. [reviewcode] 那些基础comments
  8. Visio图像应用
  9. 本地项目推送到coding
  10. selenium元素和浏览器操作