socketserver模块 ( 基于 TCP 协议 )
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import socketserver # 自定义类用来处理通信循环 class MyTCPhanler(socketserver.BaseRequestHandler): def handle(self): while True: try: data = self.request.recv(1024) if len(data) == 0: break # 针对linux系统 print('-->收到客户端的消息: ', data) self.request.send(data.upper()) except ConnectionResetError: break self.request.close() if __name__ == '__main__': server=socketserver.ThreadingTCPServer(('127.0.0.1',8081),MyTCPhanler) server.serve_forever() # 链接循环
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
from socket import * client = socket(AF_INET, SOCK_STREAM) client.connect(('127.0.0.1', 8081)) while True: client.send('hello'.encode('utf-8')) #client.send(b'') data=client.recv(1024) print(data) client.close()
socketserver模块 ( 基于 udp 协议 )
服务端:
import socketserver class MyUDPhandler(socketserver.BaseRequestHandler): def handle(self): date,sock = self.request sock.sendto(date.upper(),self.client_address) if __name__ == '__male__': server = socketserver.ThreadingUDPServer(('127.0.0.1',8081),MyUDPhandler) server.serve_forever()
客户端:
from socket import * client = socket(AF_INET,SOCK_DGRAM) while True: client.sendto(b'wxx',('127.0.0.1',8081)) date,server_addr = client.recvfrom(1024) print(date)