python 创建一个UDP服务器
2022-06-05 本文已影响0人
孙广宁
11.3 采用UDP协议同客户端进行通信的服务器
from socketserver import BaseRequestHandler,UDPServer
import time
class TimeHandler(BaseRequestHandler):
def handle(self):
print('got connection',self.client_address)
msg,sock=self.request
resp = time.ctime()
sock.sendto(resp.encode('ascii'),self.client_address)
if __name__ == '__main__':
serv = UDPServer(('',2000),TimeHandler)
serv.serve_forever()
- 定义一个特殊的处理类,其中实现一个handle方法来处理客户端联机饿,这里request属性是一个元组,包含这个服务器收到的数据以及要测试这个服务器程序,开启另一个python进程来测试客户端
>>> from socket import socket,AF_INET,SOCK_DGRAM
>>> s = socket(AF_INET,SOCK_DGRAM)
>>> s.sendto(b'',('localhost',2000))
0
>>> s.recvfrom(8192)
(b'Sun Jun 5 22:04:09 2022', ('127.0.0.1', 2000))
>>>
- 同样使用ThreadingUDPServer来处理多个客户端链接的情况