说明:
使用udp协议时不需要建立连接,只需要知道对方的ip和端口号就可以直接发数据包。但是发送的数据包是否能到达就不知道了。使用udp速度快,但不可靠。下面同样实现一个小例子说明。
服务器端代码:
#UDP编程
#服务器端
import socket
def socket_udp_server():
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)#SOCK_DGRAM指类型是UDP
host='127.0.0.1'#监听指定的ip,host=''即监听所有的ip
port=9999
#绑定端口
s.bind((host,port))
while True:
data,addr=s.recvfrom(1024)
print('Received from %s:%s'%addr)
s.sendto(b'hellow,%s,welcome!'%data,addr)
def main():
socket_udp_server()
if __name__ == '__main__':
main()
客户端代码:
#客户端
import socket
def socket_udp_client():
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
for data in ['小梦','晓星']:
host='127.0.0.1'#客户端本机的ip
port=9999
s.sendto(data.encode('utf-8'),(host,port))
print(s.recv(1024).decode('utf-8'))
s.close()
def main():
socket_udp_client()
if __name__ == '__main__':
main()
运行结果:
客户端:
服务器端: