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