udp套接字传输特点
可能出现数据丢失的情况,例如recvfrom的字节数很小
传输过程简单,实现容易
数据已数据包的形式表达传输
数据传输效率高
服务端
from socket import * #创建套接字 udp_socket = socket(AF_INET,SOCK_DGRAM) #绑定 ip_port = ('192.168.0.143',8888) udp_socket.bind(ip_port) #消息传输 while True: print("等待接收") data,addr = udp_socket.recvfrom(20) print("接收到",data.decode()) udp_socket.sendto(b"Thanks",addr) #英文可以前面加b变成字节byte类型,中文必须encode. #关闭套接字 udp_socket.close()
客户端
from socket import * udp_socket = socket(AF_INET,SOCK_DGRAM) #消息传输 server_address = ('192.168.0.143',8888) while True: msg = input(">>") if not msg: break udp_socket.sendto(msg.encode(),server_address) data,addr = udp_socket.recvfrom(20) print("从服务端接收到:",data.decode()) #关闭套接字 udp_socket.close()