UDP客户端的创建
1. 伪代码
首先,我们将展现创建通用UDP服务器的一般伪代码,然后对这些代码的含义进行一般性的描述。
cs = socket.socket() # 创建客户端套接字
comm_loop: # 通信循环
cs.sendto()/cs.recvfrom() # 对话(发送/接收)
cs.close() # 关闭客户端套接字
一旦创建了套接字对象,就进入了对话循环之中,在这里我们与服务器交换消息。最后, 当通信结束时,就会关闭套接字。
2. 制作一个UDP客户端
import socket
HOST = 'localhost'
PORT = 8080
BUFSIZE = 1024
ADDR = (HOST, PORT)
udp_c = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
data = input("请输入您要发送的数据: ")
if not data:
break
udp_c.sendto(data.encode('gbk'), ADDR)
data, ADDR = udp_c.recvfrom(BUFSIZE)
if not data:
break
print(data)
udp_c.close()
代码解释:
1-6行: 导入socket模块,定义通信时需要使用的变量,由于本次的实验是在自己的主机上运行,所以HOST就设置为’localhost’,PORT为自己指定的端口号,要保证没有冲突。注意:这个HOST,PORT是目的主机的套接字信息。我们做的是一个客户端,一般客户端是不需要绑定端口的,而是在通信的时候向操作系统随机申请一个端口进行通信。
8行: 创建一个套接字对象,用于接下来的数据交换
10-18行:设置一个循环,用来发送或接收信息,在发送信息的时候,需要对数据进行编码处理。
20行: 关闭套接字对象,结束通信。
3. 执行UDP客户端
在编写好上述代码后,首先启动网络调试工具,让其充当UDP服务器的角色并设置端口为8080,然后,用我们编写的程序给它发送数据包。
运行结果如图:
我们用socket发送一个url给调试助手:
调试助手接收到了通过socket发送的url
以上就完成了同一主机之间两个进程的简单通讯。