在 Python 程序中,当使用套接字应用传输层的 UDP 建立客户端/服务器端程序时,整个实现过程要比使用 TCP 简单一点。基于 UDP 的服务器端与客户端在进行数据传送时,不先建立连接,而直接进行数据传送。
在 socket 对象中,使用方法 recvfrom() 接收数据。具体语法格式如下:
recvfrom(bufsize[,flags]) #bufsize用于指定缓冲区大小
方法 recvfrom() 主要用来从 socket 接收数据,可以连接 UDP。
在 socket 对象中,使用方法 sendto() 发送数据。具体语法格式如下:
sendto (bytes, address)
参数“bytes”表示要发送的数据;参数“address”表示发送信息的目标地址。由目标IP地址和端口构成的元组,主要用来通过 UDP 将数据发送到指定的服务器端。
在 Python 程序中,UDP 服务器不需要 TCP 服务器那么多的设置,因为它们不是面向连接的。除等待传入的连接之外,几乎不需要做其他工作。
下面是一段通用的 UDP 服务器端代码。
ss = socket() #创建服务器套接字
ss.bind() #绑定服务器套接字
infloop: #服务器无限循环
cs = ss.recvfrom()/ss.sendto() #实现对话操作(接收/发送)
ss.close() #关闭服务器套接字
从上述演示代码中可以知道,除创建套接字并将它绑定到本地地址(主机名/端口号对)之外