前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【从零学习python 】74. UDP网络程序:端口问题与绑定信息详解

【从零学习python 】74. UDP网络程序:端口问题与绑定信息详解

作者头像
全栈若城
发布2024-02-29 20:23:43
900
发布2024-02-29 20:23:43
举报
文章被收录于专栏:若城技术专栏若城技术专栏

udp网络程序-端口问题

在运行 UDP 网络程序时,会遇到端口号会变化的情况。

每次重新运行网络程序后,可以观察到运行中的“网络调试助手”显示的数字是不同的。这是因为该数字标识了网络程序的唯一性,系统在重新运行时会随机分配端口号。

需要注意的是,在网络程序运行过程中,该数字(即端口号)用于标识该程序。因此,如果其他计算机上的网络程序想要向该程序发送数据,就需要将数据发送到该数字所标识的程序。

UDP绑定信息

<1>. 绑定信息

通常情况下,一台计算机上会同时运行多个网络程序。为了避免与其他网络程序占用相同的端口号,一般情况下UDP的端口号是不绑定的。但如果要创建一个服务器端的程序,就需要进行绑定。那么,为什么需要进行绑定呢?可以这样理解:如果报警电话的号码每天都变化,那么世界就会一片混乱。因此,服务型的程序通常需要一个固定的端口号,这就是所谓的端口绑定。

<2>. 绑定示例

代码语言:javascript
复制
from socket import *

# 1. 创建套接字
udp_socket = socket(AF_INET, SOCK_DGRAM)

# 2. 绑定本地的相关信息,如果一个网络程序不绑定,则系统会随机分配
local_addr = ('', 7788) #  ip地址和端口号,ip一般不用写,表示本机的任何一个ip
udp_socket.bind(local_addr)

# 3. 等待接收对方发送的数据
recv_data = udp_socket.recvfrom(1024) #  1024表示本次接收的最大字节数

# 4. 显示接收到的数据
print(recv_data[0].decode('gbk'))

# 5. 关闭套接字
udp_socket.close()

<3>.运行结果:

总结

一个UDP网络程序可以选择不进行绑定,此时操作系统会随机分配一个端口号。如果重新运行该程序,端口号可能会发生变化。 另外,一个UDP网络程序也可以绑定信息(如IP地址、端口号)。如果绑定成功,操作系统就会利用该端口号来区别接收到的网络数据是否属于该进程。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-02-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • udp网络程序-端口问题
    • UDP绑定信息
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档