首先是udp客户端:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto("lalala".encode("utf-8"),("127.0.0.1",9000))
socket.SOCK_DGRAM表示udp的数据报式通信,socket.AF_INET表示IPv4协议族。sendto是无连接的数据发送函数,在函数中第一个参数表示你的payload, 在python3中需要的是Bytes类型,所以需要将字符串encode编码为bytes,第二个参数是一个元组,分别是地址和端口号。
然后是udp服务端:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("127.0.0.1", 9000))
data, header = s.recvfrom(1000)
服务端需要绑定一个IP地址和一个端口号,然后调用recvfrom接受数据,参数是缓冲区大小,如果客户端传送的数据大于缓冲区大小,则丢弃超过的数据。函数返回接受到的数据和header,header里面是IP地址和端口号。