1. udp网络程序-端口问题

会变的端口号

重新运行多次脚本,然后在“网络调试助手”中,看到的现象如下:

说明:

每重新运行一次网络程序,上图中红圈中的数字,不一样的原因在于,这个数字标识这个网络程序,当重新运行时,如果没有确定到底用哪个,系统默认会随机分配

记住一点:这个网络程序在运行的过程中,这个就唯一标识这个程序,所以如果其他电脑上的网络程序如果想要向此程序发送数据,那么就需要向这个数字(即端口)标识的程序发送即可

2. udp绑定信息

<1>. 绑定信息

一般情况下,在一台电脑上运行的网络程序有很多,为了不与其他的网络程序占用同一个端口号,往往在编程中,udp的端口号一般不绑定

但是如果需要做成一个服务器端的程序的话,是需要绑定的,想想看这又是为什么呢?

如果报警电话每天都在变,想必世界就会乱了,所以一般服务性的程序,往往需要一个固定的端口号,这就是所谓的端口绑定

<2>. 绑定示例

#coding=utf-8from socket import *# 1. 创建套接字udp_socket = socket(AF_INET, SOCK_DGRAM)# 2. 绑定本地的相关信息,如果一个网络程序不绑定,则系统会随机分配local_addr = ('', 7788) # ip地址和端口号,ip一般不用写,表示本机的任何一个ipudp_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地址,端口号),如果绑定成功,那么操作系统用这个端口号来进行区别收到的网络数据是否是此进程的

一个socket可以绑定多个端口吗_udp绑定端口信息相关推荐

  1. Python应用-[用Python实现一个socket echo程序 tcp socket的几个关闭状态]

    这里用Python实现了一个echo程序的服务端和客户端,客户端发出的东西,服务端打上一个时间戳后给客户端发回去.主要是实践一下Python的socket编程 Python的socket相关的比较低层 ...

  2. Accept是又产生一个Socket端口吗?

    Accept是又产生一个Socket端口吗? 要写网络程序就必须用Socket,这是程序员都知道的.而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本 ...

  3. socket tcp java_用JAVA写一个SOCKET 接收TCP发来的消息

    服务器端程序 import java.io.*; import java.net.*; import java.applet.Applet; public class TalkServer{ publ ...

  4. 限制计算机通讯端口mac绑定,h3c交换机ip和mac绑定配置教程

    h3c交换机ip和mac绑定配置教程 首先登录交换机,进入管理状态System-View 第一种情况:1个端口只有一台电脑如何绑定 如:某台电脑的IP:10.119.100.1 MAC:00-1A-4 ...

  5. 两个进程,或者多个进程同时监听一个端口,邦定同一个端口,

    void ReceiveTest(){//1 创建套节字 System.Net.Sockets.Socket s = new Socket(AddressFamily.InterNetwork, So ...

  6. php linux fork进程 多个进程/线程共享一个 socket连接 出现多个进程响应串联

    简单说来就是:因为fork,父子进程共享了一个redis连接.然后父子进程在发送了各自的redis请求分别获取到了对方的响应体. 复现示例代码: testFork.php <?php requi ...

  7. 记一个 DataBindings遇到的坑,当ComboBox同时绑定DataSource与DataBindings的时候,绑定的元素一定要同名...

    记一个 DataBindings遇到的坑,当ComboBox同时绑定DataSource与DataBindings的时候,绑定的元素一定要同名 原文:记一个 DataBindings遇到的坑,当Com ...

  8. c语言多线程转python多线程,一个Socket能否被多线程写入(转)

    C语言出身,看dubbo服务时多线程共享一个长连接时,在想为什么不会出现数据写乱的情况(不是粘包的那种),也就是一个socket缓冲区中,先写了A包的一部分,又写了B包的一部分,再写了A包的一部分?? ...

  9. c#写一个socket同步客户端

    上一篇已经实现了socket服务器,这次使用c#写一个socket网络客户端,实现消息收发功能,可以作为网络调试助手使用.界面如下: 首先填入服务器IP地址和端口号,点击connec进行连接,具体代码 ...

最新文章

  1. 解密ATS 4.2.3的缓存状态密码
  2. MySQL 的实时性能监控利器
  3. 计算机页面设置代码,计算机二级考试Access辅导:页面设置模块代码分享
  4. STL源码剖析 序列式容器 deque双端队列
  5. C# 中 Struct 与 Class 的区别,以及两者的适用场合
  6. tensorrt安装_[深度学习] TensorRT安装
  7. java synchronized atomic_atomic 包、synchronized | Java 中线程安全
  8. matplotlib 28原则
  9. UIAlertView/UIAlertController封装使用
  10. 贪心 C - Kayaking
  11. Python晦涩知识点
  12. 联想笔记本拯救者Y7000盒盖不休眠问题,Win10
  13. 鱼眼相机1080P的标定内参转换为720P的内参鱼眼相机标定方法
  14. wps文字 用WPS如何演示制作英语有声读物
  15. BDL 百度研究院大数据实验室的吴海山,做一名数据科学家有怎样的体验,问我吧!
  16. 按某一列统计重复数据,并获取对应行数据
  17. 图像控制点 形变_基于控制点的图像变形方法的研究与实现
  18. 计算机考研英语大纲,考研计算机大纲
  19. 算法训练-二进制加法
  20. SDUTOJ 3034 ——炸学校

热门文章

  1. 总谐波失真80_如何将总谐波失真降至 10% 以下
  2. 做海外市场,如何在Facebook20多亿用户中分一杯羹?
  3. 计算机与艺术就业怎样,就业报告:这些艺术类好就业,这些难就业!
  4. Leetcode每日一题:148.sort-list(链表排序)
  5. TensorFlow2.0:张量限幅
  6. 吴恩达机器学习与深度学习作业目录 [图片已修复]
  7. 按键精灵post教程_【按键精灵教程】更为强大的HTTP方法
  8. 如何去除Druid数据监控广告?
  9. python列表推导式中使用if和if-else
  10. Python3.7安装Scrapy失败,解决方法