"""
基于threading的多线程网络并发
1.创建监听套接字
2.循环接收客户端请求
3.客户端连接创建新的线程处理客户端请求
4.主线程继续等待其他客户请求
5.如果客户端退出,则对应分支线程退出
"""
from threading import Thread
from socket import *
import sys
def dispose(val):
while True:
data = val.recv(1024)
if not data:
break
print(">>", data.decode())
val.send(b"my server")
val.close()
# 设置全局变量
HOST = "127.0.0.1"
PORT = 9090
ADDR = (HOST, PORT)
# 创建tcp套接字
soc = socket(AF_INET, SOCK_STREAM)
# 设置端口立即重用
soc.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
# 绑定服务器地址
soc.bind(ADDR)
# 开启监听服务
soc.listen(5)
print("Listen the port 9090...")
# 循环接收客户端连接
while True:
try:
c, addr = soc.accept()
print("Connect from", addr)
except KeyboardInterrupt:
sys.exit("退出")
except Exception as a:
print(a)
t = Thread(target=dispose, args=(c,))
t.start()
python基于threading的多线程网络并发
最新推荐文章于 2023-11-24 01:51:08 发布