上期演示了如何用python实现采用udp的方式发送数据到指定的ip和端口,本期演示如何用UDP接收数据。
1.编写python代码如下:
# -*- coding: utf-8 -*- """ Created on Sun Jul 19 13:54:21 2020 @author: PY ZHANG """ # 引入socket包,作为网络通信的工具包 import socket def udp_test2(): """用UDP的方式实现接收数据的方法""" # 1.创建一个UDP套接字对象 # 套接字里面传入socket.AF_INET和socket.SOCK_DGRAM两个常量参数 udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # 2.定义本机的IP和端口的元组 local_addr=("",8088) # 3.绑定端口,用bind方法 udp_socket.bind(local_addr) while True: # 4.接收数据,用recvfrom方法,传入参数1024 recv_data=udp_socket.recvfrom(1024) # 5.recv_data接收到的是一个元组,元组中第一个参数是数据,第二个参数是对方地址 # 5.1取出元组中相应的数据 msg_data=recv_data[0].decode("utf-8") # 5.2取出元组中相应的对方地址 addr_ip,addr_port=recv_data[1] # 6.打印接收到的数据 print("接收到的数据:%s" % msg_data) print("接收到的对方IP地址:%s" % addr_ip) print("接收到的对方端口:%s" % addr_port) if msg_data=="quit": break # 7.关闭套接字 udp_socket.close() print("执行完毕") udp_test2() |
2.打开网络调试助手,将参数配置如下:
3.运行第一步的python代码,然后执行上述调试助手的第三步,发送数据后,得到python的执行结果如下:
总结:
1. 接收UDP传输方式的网络数据,只需要socket对象的recvfrom方法即可
2. 接收UDP传输方式的网络数据,需要绑定socket的端口,让发送方往指定端口发送网络数据。绑定端口需要用到bind方法,bind方法里的参数是一个IP和端口组合成的元组。
关注本公众号,下几期演示:
如何用python实现TCP方式的网络通信
如何用网络调试助手接收HTTP请求
如何用网络调试助手响应HTTP请求