加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 多个应用程序如何使用同一网络端口?

发布时间:2020-12-16 09:52:04 所属栏目:百科 来源:网络整理
导读:我想知道,多个应用程序如何使用相同的网络端口. TCP协议1端口中的AFAIK被分配给1个套接字连接.那么,例如,多个互联网浏览器如何同时使用端口80/8080? 我可以将多个套接字绑定到同一个端口吗?我怎么能在C中做到这一点? 解决方法 套接字连接由其本地IP:端口
我想知道,多个应用程序如何使用相同的网络端口. TCP协议1端口中的AFAIK被分配给1个套接字连接.那么,例如,多个互联网浏览器如何同时使用端口80/8080?
我可以将多个套接字绑定到同一个端口吗?我怎么能在C中做到这一点?

解决方法

套接字连接由其本地IP:端口和远程IP:端口的组合唯一标识.多个应用程序可以绑定到同一本地IP:端口,只要它们分别连接到不同的远程IP:端口即可.

如果本地IP:端口已绑定侦听(已为其调用bind()和listen()),则其他套接字仍然可以绑定()到同一本地IP:端口但仅限于SO_REUSEADDR(并且在某些平台上),SO_REUSEPORT)使用套接字选项.否则,bind()将失败并显示“已在使用中”错误.

当多个客户端套接字connect()连接到同一个远程IP:端口时,通常不指定本地绑定,这允许connect()对随机可用的本地IP执行隐式绑定()以避免与其他连接冲突.如果显式调用bind()并成功,则调用connect()连接到远程IP:已连接到本地IP的端口:端口,connect()将失败.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读