基于threading多线程并发TCP套接字-萌新学习笔记
程序代码:
''' 基于threading多线程并发TCP套接字 ''' # 导入模块 from socket import * from threading import Thread import os,sys # 全局变量,地址和端口 ADDR = ('0.0.0.0',8888) # 创建套接字 s = socket() # 设置端口立刻重用 s.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) # 绑定地址端口 s.bind(ADDR) # 开始监听 s.listen() print('Listen the port 8888...') # 接收并处理消息线程 def handle(c): while True: try: # 处理遇到的客户端意外断开的异常 data = c.recv(1024) if not data: break print(data.decode()) c.send(b'OK') except: break c.close() # 主线程开始 while True: try: # 处理遇到的异常 c,addr = s.accept() print('Connect from',addr) except KeyboardInterrupt: sys.exit('退出服务器') except Exception as e: print(e) continue # 创建线程并发处理每一个收到的消息 t = Thread(target=handle,args=(c,)) t.setDaemon(True) # 线程回收处理 t.start() # 开始线程