设为首页收藏本站

无忧开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索

[网络编程] 已连接套接字与监听套接字共用端口号

[复制链接]
book_ting 发表于 2014-1-15 14:38:19 | 显示全部楼层 |阅读模式
已连接套接字与监听套接字共用端口号

首先请了解 “套接字对” 这个概念:

一个TCP连接的套接字对 是一个定义该连接的两个端点的四元组:本地IP地址、本地TCP端口号、外地IP地址、外地TCP端口号。
套接字对唯一标识一个网络上的每个TCP连接,也就是说一个连接由这四元组来确定!
标识每个端点的两个值:IP地址和端口号,通常称为一个套接字。

        * 已连接套接字使用与监听套接字相同的本地端口

并发服务器中主服务器循环通过派生一个子进程来处理每个新的连接。
服务器{172.20.223.104:8000}  [用此格式表示ip和端口号]

客户端A{172.20.223.1:5000} 连接服务器,产生一个连接,这个连接由四元组{172.20.223.104:8000, 172.20.223.1:5000} 标识。

客户端B{172.20.223.1:5001} 连接服务器,产生另一个连接,这个新连接由四元组{172.20.223.104:8000, 172.20.223.1:5001} 标识。

虽然在服务器端,每个连接的目的ip和目的端口号都是172.20.223.104和8000, 但是是由套接字对标识一个连接,如果客户端在一个系统ip相同,端口号一定不同,如果客户端在不同系统,ip不同,端口号可能相同,所以四元组不会完全一样,即可以区分出不同的连接。

所有目的端口为8000的其他TCP分节都被递送给拥有监听套接字的最初那个服务器(父进程)。

评分

参与人数 1金币 +3 收起 理由
adminjet + 3 赞一个!

查看全部评分

萧远山 发表于 2014-1-15 14:38:47 | 显示全部楼层
报告!别开枪,我就是路过来看看的。。。
dong_ge 发表于 2014-1-16 17:52:56 | 显示全部楼层
注意:派生 是C++的,在C中没有
泡泡游侠008 发表于 2016-3-1 11:15:25 | 显示全部楼层
体术最高境界,可惜副作用明显
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则