python socket recv超时_如何用python实现接收UDP方式的网络通信数据

        上期演示了如何用python实现采用udp的方式发送数据到指定的ip和端口,本期演示如何用UDP接收数据。

        1.编写python代码如下:

329a44201f4b4b9e3dea9a462eb03798.png

# -*- 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.打开网络调试助手,将参数配置如下:

b2b799fb88155e38af1f1ce2597d2757.png

3.运行第一步的python代码,然后执行上述调试助手的第三步,发送数据后,得到python的执行结果如下:

941157cb729d2b35aa9a60f942b603de.png

总结:

        1. 接收UDP传输方式的网络数据,只需要socket对象的recvfrom方法即可

        2. 接收UDP传输方式的网络数据,需要绑定socket的端口,让发送方往指定端口发送网络数据。绑定端口需要用到bind方法,bind方法里的参数是一个IP和端口组合成的元组。

关注本公众号,下几期演示:

  1. 如何用python实现TCP方式的网络通信

  2. 如何用网络调试助手接收HTTP请求

  3. 如何用网络调试助手响应HTTP请求

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值