网站制作过程中碰到的问题,微信怎么做链接推广产品,优秀企业网站设计制作,建阳建设局网站Python进阶----UDP协议使用socket通信,socketserver模块实现并发一丶基于UDP协议的socket实现UDP协议传输数据代码如下:#x1f447;### 客户端# -*-coding:utf-8-*-# Author:Dsimport socket# 实例化UDP协议的socket对象 ,配置参数, socket.SOCK_DGRAM(数据报)udp_clisocket.…Python进阶----UDP协议使用socket通信,socketserver模块实现并发一丶基于UDP协议的socket实现UDP协议传输数据代码如下:### 客户端# -*-coding:utf-8-*-# Author:Dsimport socket# 实例化UDP协议的socket对象 ,配置参数, socket.SOCK_DGRAM(数据报)udp_clisocket.socket(socket.AF_INET,socket.SOCK_DGRAM)while 1:# 1. 向客户端发送数据to_ser_msginput(请输入内容:).strip()# sendto 包含 字节数据和服务端的ip和端口 两部分内容udp_cli.sendto(to_ser_msg.encode(utf-8),(127.0.0.1,9999))# 2. recvfrom 接收服务端返回的数据from_ser_msgudp_cli.recvfrom(1024)print(f来自{from_ser_msg[1]}的信息:{from_ser_msg[0].decode(utf-8)})### 服务端# -*-coding:utf-8-*-# Author:Dsimport socket# 实例化UDP协议的socket对象 ,配置参数, socket.SOCK_DGRAM(数据报)udp_serversocket.socket(socket.AF_INET,socket.SOCK_DGRAM)udp_server.bind((127.0.0.1,9999)) # 绑定服务端IP和端口while 1 :# 1. 接收任意客户端发送的数据from_cli_msgudp_server.recvfrom(1024)# 接收到的是元组类型的数据, 包含客户端的IP和端口,客户端发来的字节数据print(from_cli_msg)# 格式化输出print(f来自{from_cli_msg[1]}的信息:{from_cli_msg[0].decode(utf-8)})# 2. 向客户端返回数据,to_cli_msginput(请输入回复消息:).strip()# 因为接收的数据中包含了客户端的的IP和地址udp_server.sendto(to_cli_msg.encode(utf-8),from_cli_msg[1])总结:sendto: 发送数据,包含两部分内容(字节形式数据,服务端的IP和地址)recvfrom: 接收数据(1024) udp是无链接,先启动哪一端都不会报错(无论服务端还是客户端发送数据,都不管另一方是否能接收到)二丶基于socketserver实现并发socketserver作用:需要用它来实现并发也就是同时可以和多个客户端进行通信### 服务端# -*-coding:utf-8-*-# Author:Dsimport socketserver# 这个请求类要继承BaseRequestHandler,并且还有重写父类里的handle()class My_Server(socketserver.BaseRequestHandler):def handle(self):while 1:# 接收数据from_cli_dataself.request.recv(1024).decode(utf-8)print(from_cli_data)# 返回数据## 服务器还是依次给客户端返回数据to_cli_datainput(请输入要返回的消息:).strip()self.request.send(to_cli_data.encode(utf-8))if __name__ __main__:IP_PROT(127.0.0.1,9999) # 定义 服务端的IP和端口# 1.利用模块 socketserver 开启多线程TCP# 2. 把端口和IP IP_PROT , 自定义请求处理类My_Serverserversocketserver.ThreadingTCPServer(IP_PROT,My_Server)server.serve_forever() # 永远开启连接通道### 客户端## 可以开启多个客户端, 同时向服务器发送数据,# -*-coding:utf-8-*-# Author:Dsimport socketclientsocket.socket()client.connect((127.0.0.1,9999))while 1:uiinput(输入内:).strip()client.send(ui.encode(utf-8))from_ser_dataclient.recv(1024)print(f来自服务器的信息:{from_ser_data.decode(utf-8)})实例化ThreadingTCPServer()分析继承关系