千家信息网

怎么实现Udp接收数据

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"怎么实现Udp接收数据",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么实现Udp接收数据"吧!udp接收数据,网络调试助手担任发送方,
千家信息网最后更新 2026年11月03日怎么实现Udp接收数据

本篇内容主要讲解"怎么实现Udp接收数据",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么实现Udp接收数据"吧!

  udp接收数据,网络调试助手担任发送方,但发送时需要对方的也就是虚拟机的ip 和端口,ip可以通过config获取,那么如何让一个程序拥有一个固定端口呢?

  创建套接字的时候是没有端口号的,好比买了手机没有手机号,别人是找不到你的,所以要有一个固定的端口号,用udp_socket.bind()绑定一个端口

  接下来写程序,终端中:

  vim 05 绑定端口用来接收数据.py

  写程序的思路: if name=="main":

  main()

  然后再def main():

  在这个函数里写代码。

  用注释来搭建流程

  #1、创建套接字

  #2、绑定一个本地信息

  #3、接收数据

  #4、打印接收到的数据

  #5、关闭套接字

  流程搭建完之后开始写代码,创建套接字的时候,用的是socket.XX,此时需要在代码的最上方导入socekt,用到什么导什么,代码不是从第一行开始写的。

  因为当代码比较多的时候,比如200多行,不确定会用到什么,所以用到什么导入什么,用到什么再调什么。

  1、udp绑定端口用来接收数据.py

  代码具体形式如下:

  import socket

  def main():

  #1、创建套接字

  udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

  #2、绑定一个本地信息(udp ctrl n自动补全),必须绑定自己电脑的ip port其它电脑的不行

  绑定的是一个元组,用localaddr变量表示,本地ip,绑定端口,端口号大于1024

  localaddr =("",7788)

  udp_socket.bind(localaddr)

  #3、接收数据(发送数据是套接字.sendto 接收是套接字.recvfrom(1024),

  1024表示本次接收的最大字节数),并用recv_data变量接收

  recv_data = udp_socket.recvfrom(1024)

  #4、打印接收到的数据

  print(recv_data)

  #5、关闭套接字

  udp_socket.close()

  if __name__=="__main__":

  main()

  代码完成后,终端中python3 05 绑定端口用来接收数据.py 运行程序,此时由网络调试助手发送过来的消息就可以在终端中收到,收到的内容显示情况如下:

  打印出来的数据即变量recv_data,是一个元组,第一个参数是发送的数据,第二个参数是一个小元组,是发送方的ip和端口。

  想要在终端中只显示接收到的数据,不显示对方的ip 和端口,操作如下:

  cp 05 绑定端口用来接收数据.py 06解析出接收到数据.py

  2、解析出接收到数据.py

  关于注释:

  如果在一行的开头注释,直接用# 后面跟上一个空格 再写注释内容

  如果是在代码后面注释 代码后面加两个空格 再用# 跟上一个空格 再写注释内容

  打印代码调整时的思路:

  print("s% : s%",%(send_addr,recv_msg))

  但send_addr是一个元组,不能直接这样用,需要用str(send_addr)来转换

  recv_msg也不能直接用,因为发送时是用编码编成了bite类型,收到的也是bite类型,如果直接发送过来的是字母,可以收到,但是如果发送过来是汉字,收到的是乱码,此时需要解码,

  recv_msg.decode("utf-8"),但是此时用windows的网络调试助手发送中文过来还是乱码,因为windows不是用utf-8编码的,用的是gbk编码,所以此时解码需要用gbk,即:recv_msg.decode("gbk")

  如果将网络调试助手放到ubantu中,解码还是要用utf-8来解

  import socket

  def main():

  #1、创建套接字

  udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

  #2、绑定一个本地信息

  localaddr =("",7788)

  udp_socket.bind(localaddr)

  #3、接收数据

  recv_data = udp_socket.recvfrom(1024)

  recv_msg = recv_data[0] # 用来接收发送的内容

  send_addr = recv_data[1] # 用来接收发送方的ip和port

  #4、打印接收到的数据

  #print(recv_data) # 此时打印的代码需要注释掉,重新调整

  pint("s%:s%",%(str(send_addr),recv_msg.decode("gbk")))

  #5、关闭套接字

  udp_socket.close()

  if __name__=="__main__":

  main()

  **总结:无锡妇科检查医院 http://www.87554006.com/

  发送数据步骤:

  1.创建套接字

  2.发送数据

  3.关闭套接字

  接收数据步骤:

  1.创建套接字

  2.绑定本地的ip 端口

  3.接收数据

  4.打印套接字

  想要在终端中循环一直接收数据,操作如下:

  cp 06解析出接收到数据.py 07循环接收数据.py

  vim 07循环接收数据.py

  3、循环接收数据.py

  想要循环接收,就要用while true ,对接收和打印代码进行while true:

  ESC 大V 上下箭头选中,大于号向右缩进

  import socket

  def main():

  #1、创建套接字

  udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

  #2、绑定一个本地信息

  localaddr =("",7788)

  udp_socket.bind(localaddr)

  #3、接收数据

  while True:

  recv_data = udp_socket.recvfrom(1024)

  recv_msg = recv_data[0] # 用来接收发送的内容

  send_addr = recv_data[1] # 用来接收发送方的ip和port

  #4、打印接收到的数据

  pint("s%:s%",%(str(send_addr),recv_msg.decode("gbk")))

  #5、关闭套接字

  udp_socket.close()

  if __name__=="__main__":

  main()

到此,相信大家对"怎么实现Udp接收数据"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

数据 套接字 代码 端口 内容 注释 终端 循环 信息 助手 程序 网络 变量 口号 时候 空格 编码 utf-8 一行 乱码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 苏州找大状互联网科技有限公司 云信互联网科技有限公司 互联网与科技发展 互联网科技的 北京互联网络科技有限公司 奔汉互联网科技 天扬科技互联网广告 重庆科技学院互联网 上海电发互联网科技有限公司 卫星互联网科技股票 互联网科技博主是什么意思 消费医药和互联网科技 民营互联网公司国防科技 允成互联网科技有限公司融资 互联网企业科技类企业如何做账 宇信科技在杭州互联网排第几 国产互联网科技公司 互联网科技收购价值 中国主要互联网科技公司 互联网 科技节活动 微视频大赛 互联网高科技股票 互联网金融和金融科技 老年人脱离互联网科技的作文 武汉健翔互联网络科技有限公司 亳州好赞互联网科技有限公司 如何创新互联网科技 美国互联网科技公司 郑州欣桑互联网科技有限公司 容联科技互联网电商 互联网科技自媒体灵感
0