TCP服务端实现并发

  • 服务端
copy
# 封装过 import socket from threading import Thread # 套字节 TCP协议 server = socket.socket() # 绑定ip与port server.bind(('127.0.0.1', 8080)) # 连接池 子线程 客户端连接 不受连接池限制所影响! server.listen(5) # 执行程序 def talk(sock): # 循环接收客户端数据 while True: # 异常捕获 try: # 固定每次接收数据, data = sock.recv(1024) # 判断接收是否为空 if len(data) == 0: break # 将接收数据解码 print(data.decode('utf8')) # 发送数据 sock.send(data + b'gun dan!') except ConnectionResetError as e: print(e) break # 结束套字节 sock.close() # 调用执行程序 while True: # 循环 被动客户端连接 并返回(sock,addr)sock是通信,发送数据与接收数据 # addr是客户端地址 sock, addr = server.accept() print(addr) # 开设多进程或者多线程 t = Thread(target=talk, args=(sock,)) # 执行打开子线程 t.start()
  • 客户端
copy
import socket # 客户端 套字节 client = socket.socket() # 连接服务端ip与port client.connect(('127.0.0.1', 8080)) while True: # 获取用户输入 msg = input('>>>') # 发送数据 并编码 client.send(msg.encode('utf8')) # 接收服务端数据 data = client.recv(1024) # 解码并打印 print(data.decode('utf8'))

image

posted @   AlexEvans  阅读(105)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
🚀