1、前言:

socket建立连接的时候,服务器端需要socket ,bind,listen,accept:

其中,bind需要绑定ip地址和端口号;

accept之后,会生成一个新的socket ,这个socket会对应一个新的端口号;

客户端需要socket,connect:

多个客户端可以同时去连接同一个服务器端。

2、命令结果分析

netstat -an查看端口网络状态分析

由上图可知:local Address 是我们本地机IP,后面跟着的是端口号;

Foreign  Address是与该主机连接的电脑ip,后面跟着的是分配的新的端口号(相当于accept之后的端口值);

23端口是telnet 服务,我们看到有2台foreign机通过telnet连接了本地机。

netstat -an查看端口网络状态分析

表示23端口在监听listen状态,表示是服务器端进程。

netstat -an查看端口网络状态分析

 可以看到有两台客户端电脑在通过telnet连接服务器,服务器给两个客户端分别分配了49361和46100两个端口号;

3、总结:

客户端connect服务器端的23端口程序;

服务器端accept   A客户端后,创建了一个新的socket,对应一个新的端口号49361;

服务器端accept B客户端后,创建了一个另一个新的socket,对应另一个新的端口号46100。

也就是说,最终一个客户端进程对应一个端口号。

相关文章: