UDP接收方代码 采用UDP协议实现不同主机间的通信
import socket
def receive(udp_socket):
udp_socket.bind(("127.0.0.1", 8888)) # 使用套接字下的bind方法绑定本地ip地址和端口号, 是一个元组
while True: # 循环接受数据
receive_data = udp_socket.recvfrom(1024) # 使用套接字下的recvfrom方法接受数据信息,最大接受字节数不超过1024字节
"""因为接受到的是元组数据,且元组里面的元素也有元组,
所以可以采用按照下标位置索引取值,也可以使用元组解包方法"""
print("From[IP:%s Port:%s]:%s" % (receive_data[1][0],receive_data[1][1],receive_data[0].decode("gbk")))
# udp_socket.close() # 关闭套接字
def send(udp_socket):
far_ip_port = ("127.0.0.1", 8888) # 指定发送目标的ip地址和端口号
while True: # 循环发送数据
send_data = input("请输入你需要发送的信息:") # 用户输入需要发送的数据信息
udp_socket.sendto(send_data.encode("gbk"), far_ip_port) # 将用户输入的信息编码为gbk格式,向指定的远程主机(ip + 端口)发送数据
if __name__ == '__main__':
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 创建一个名叫udp_socket的套接字 采用UDP协议实现不同主机间的通信
print("~" * 40)
print("1:udp协议发送数据\t2:udp协议接受数据")
print("~" * 40)
number = input("请输入功能选项:")
if number == "1":
send(udp_socket)
elif number == "2":
receive(udp_socket)
else:
print("你的输入有误,程序退出")
。。。版权来自walle被注册了