社区
其它技术问题
帖子详情
为什么两个进程不能bind到同一端口
hcconquer
2010-09-27 09:08:40
为什么两个进程不能bind到同一端口
而子进程继承父进程的文件描述符,就可以和父进程一样读写同一个端口呢?
(协议,地址,端口)和进程到底是什么关系?为什么要有这种关系?
...全文
236
5
打赏
收藏
为什么两个进程不能bind到同一端口
为什么两个进程不能bind到同一端口 而子进程继承父进程的文件描述符,就可以和父进程一样读写同一个端口呢? (协议,地址,端口)和进程到底是什么关系?为什么要有这种关系?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ymy1248227142
2012-03-23
打赏
举报
回复
搞不懂。。。。
oyster2008
2010-10-12
打赏
举报
回复
如果每一个进程在bind之前都设置端口可重用,那么对于TCP而言,可以有多个进程bind到同一个端口,只是必须bind到不同的地址。对于UDP而言,多个进程可以bind到完全一样的套接字(地址+端口)上
井朝天
2010-10-12
打赏
举报
回复
[Quote=引用楼主 hcconquer 的回复:]
为什么两个进程不能bind到同一端口
而子进程继承父进程的文件描述符,就可以和父进程一样读写同一个端口呢?
(协议,地址,端口)和进程到底是什么关系?为什么要有这种关系?
[/Quote]
这个从tcp/ip的实现可以得到答案。举个例子:
当一个数据包到来之后,自网卡不断向上层递送,这时要根据数据包中所包含的端口来选择进程号已交给某个进程来处理它,所以只能一个进程。多的话就会引起混乱,不知道要通知哪个进程来接收此数据包了。
kingstarer
2010-09-27
打赏
举报
回复
可以accept
一般是主进程bind后fork多个子进程accept
ayw215
2010-09-27
打赏
举报
回复
端口设置成reuseable的
Linux内核源代码情景分析 (上下册 高清非扫描 )
本PDF电子书包含上下两册,共1576页,带目录,高清非扫描版本。 作者: 毛德操 胡希明 丛书名: Linux内核源代码情景分析 出版社:浙江大学出版社 目录 第1章 预备知识 1.1 Linux内核简介. 1.2 Intel X86 CPU系列的寻址方式 1.3 i386的页式内存管理机制 1.4 Linux内核源代码中的C语言代码 1.5 Linux内核源代码中的汇编语言代码 第2章 存储管理 2.1 Linux内存管理的基本框架 2.2 地址映射的全过程 2.3 几个重要的数据结构和函数 2.4 越界访问 2.5 用户堆栈的扩展 2.6 物理页面的使用和周转 2.7 物理页面的分配 2.8 页面的定期换出 2.9 页面的换入 2.10 内核缓冲区的管理 2.11 外部设备存储空间的地址映射 2.12 系统调用brk() 2.13 系统调用mmap() 第3章 中断、异常和系统调用 3.1 X86 CPU对中断的硬件支持 3.2 中断向量表IDT的初始化 3.3 中断请求队列的初始化 3.4 中断的响应和服务 3.5 软中断与Bottom Half 3.6 页面异常的进入和返回 3.7 时钟中断 3.8 系统调用 3.9 系统调用号与跳转表 第4章
进程
与
进程
调度 4.1
进程
四要素 4.2
进程
三部曲:创建、执行与消亡 4.3 系统调用fork()、vfork()与clone() 4.4 系统调用execve() 4.5 系统调用exit()与wait4() 4.6
进程
的调度与切换 4.7 强制性调度 4.8 系统调用nanosleep()和pause() 4.9 内核中的互斥操作 第5章 文件系统 5.1 概述 5.2 从路径名到目标节点 5.3 访问权限与文件安全性 5.4 文件系统的安装和拆卸 5.5 文件的打开与关闭 5.6 文件的写与读 5.7 其他文件操作 5.8 特殊文件系统/proc 第6章 传统的Unix
进程
间通信 6.1 概述 6.2 管道和系统调用pipe() 6.3 命名管道 6.4 信号 6.5 系统调用ptrace()和
进程
跟踪 6.6 报文传递 6.7 共享内存 6.8 信号量 第7章基于socket的
进程
间通信 7.1系统调用socket() 7.2函数sys—socket()——创建插口 7.3函数sys—
bind
()——指定插口地址 7.4函数sys—listen()——设定server插口 7.5函数sys—accept()——接受连接请求 7.6函数sys—connect()——请求连接 7.7报文的接收与发送 7.8插口的关闭 7.9其他 第8章设备驱动 8.1概述 8.2系统调用mknod() 8.3可安装模块 8.4PCI总线 8.5块设备的驱动 8.6字符设备驱动概述 8.7终端设备与汉字信息处理 8.8控制台的驱动 8.9通用串行外部总线USB 8.10系统调用select()以及异步输入/输出 8.11设备文件系统devfs 第9章多处理器SMP系统结构 9.1概述 9.2SMP结构中的互斥问题 9.3高速缓存与内存的一致性 9.4SMP结构中的中断机制 9.5SMP结构中的
进程
调度 9.6SMP系统的引导 第10章系统引导和初始化 10.1系统引导过程概述 10.2系统初始化(第一阶段) 10.3系统初始化(第二阶段) 10.4系统初始化(第三阶段) 10.5系统的关闭和重引导
端口
号 & 一个
端口
号是否可以被多个
进程
绑定?& 一个
进程
是否可以
bind
多个
端口
号?
1.
端口
号的作用
端口
号可以用来标识
同一
个主机上通信的不同应用程序,
端口
号+IP地址就可以组成一个套接字,用来标识一个
进程
2.
端口
号的应用场景 在TCP/IP协议中,用“源IP地址”,“目的IP地址”,“源
端口
号”,“目的
端口
号”,协议号(IP协议的协议号为4,TCP的协议号为6)这样的一个五元组来标识一个通信,通信的双方在发送消息时,消息的头部会带着这样的五元组 3.端...
端口
号 & 一个
端口
号是否可以被多个
进程
绑定?& 一个
进程
是否可以
bind
多个
端口
号?【转】
(转自:https://blog.csdn.net/dangzhangjing97/article/details/80958819) 1.
端口
号的作用
端口
号可以用来标识
同一
个主机上通信的不同应用程序,
端口
号+IP地址就可以组成一个套接字,用来标识一个
进程
2.
端口
号的应用场景 在TCP/IP协议中,用“源IP地址”,“目的IP地址”,“源
端口
号”,“目的
端口
号”,协议号(IP协议的协...
多
进程
侦听
同一
端口
多
进程
侦听
同一
端口
2013-03-05 09:12:55| 分类: 网读札记 | 标签:linux |举报|字号 订阅 来源:网易博客 Tsecer的回音岛 http://tsecer.blog.163.com/blog/static/150181720125394056715/ 一、
端口
侦听 我们知道,系统中的互联网
端口
地址是系统级唯
如何多个
进程
监听
同一
个
端口
1. 问题描述 一个
进程
监听
端口
,经验告诉我们,如果多次启动一个
进程
会报错:“Address already in use!"。这是由于
bind
函数导致的,由于该
端口
号已经被第一个
进程
监听了。有哪些方法可以实现多个
进程
监听
同一
个
端口
呢? 2. 方案一:fork 只要在绑定
端口
号(
bind
函数)之后,监听
端口
号之前(listen函数),用fork()函数生成子
进程
,这样子
进程
就可以克隆父
进程
,达到监听
同一
个
端口
的目的,而且还相互竞争,提高程序效率。 这里要注意的是,计算机三次握手创建连接是不需要服务进
其它技术问题
3,882
社区成员
9,046
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章