udp使用同一个套接字进行收发数据(三)
报一下环境:
win10 + pycharm(python3.7)+ mNetAssist
import socket
def main():
# 1.创建一个套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 2.发送数据
# 2.1获取对方的ip/port
dest_ip = input("请输入对方的ip:")
dest_port = int(input("请输入对方的port:"))
# 从键盘获取数据
send_data = input("请输入要发送到的数据:")
# 使用套接字发送数据
udp_socket.sendto(send_data.encode("GBK"), (dest_ip, dest_port))
# 接收数据
# 绑定一个本地信息
# localaddr = ("", 7788)
# udp_socket.bind(localaddr)
# 接受数据
recv_data = udp_socket.recvfrom(1024) # 1024 代表接收的最大字节数
# recv_data 存储的是一个元组(接收到的数据,发送方的ip, port))
recv_msg = recv_data[0] # 存储接收的数据
send_addr = recv_data[1] # 存放发送方的地址信息
# 打印接收到的数据
print("%s:%s" % (str(send_addr), recv_msg.decode("GBK")))
# 关闭
udp_socket.close()
if __name__ == "__main__":
main()
注意事项
- 1.绑定信息时必须绑定自己电脑的ip以及port