示例代码:
import socket
def main_client():
#1创建套接字
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#2 准备接收方的地址
udp_socket.bind(('',8081))
dest_addr = ('192.168.100.38',8080)
#构造发送的数据
send_data = "that is from client!"
#3发送数据
udp_socket.sendto(send_data.encode('utf-8'),dest_addr)
#4 接受接收方发送的数据
recv_data,addr = udp_socket.recvfrom(1024)
print("------client------")
print(recv_data.decode())
print(addr)
print("------client------")
# 5 关闭套接字
udp_socket.close()
def main_server():
#1 创建套接字
udp_server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#2 绑定端口
udp_server.bind(('',8080))
#3 准备接受发送方地址
dest_addr = ('192.168.100.24',8081)
#4 接收数据
recv_data,addr = udp_server.recvfrom(1024)
#5 准备发送数据
udp_server.sendto('that is from server!'.encode('utf-8'),dest_addr)
print('------server------')
print(recv_data.decode())
print(addr)
print('------server------')
#6 关闭套接字
udp_server.close()
if __name__ == "__main__":
main_client()
main_server()
在使用过程中一定要注意以下几点:
一:绑定端口的时候,数据是一个tuple;
二:客户端和服务端在互相通信的时候:要保证两点:1、服务端先阻塞监听,再向客户端发送数据;2、客户端要先发送数据,再阻塞监听,保证双方的阻塞状态跳出,否则会出现服务端或者客户端处
于阻塞状态,无法进行下面的代码流程。