scoketserver模块(TCP协议 与 udp 协议)

socketserver模块 ( 基于 TCP 协议 )

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() # 链接循环
server
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()
client

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)
原文地址:https://www.cnblogs.com/liu--huan/p/9585339.html