1、前言:
socket建立连接的时候,服务器端需要socket ,bind,listen,accept:
其中,bind需要绑定ip地址和端口号;
accept之后,会生成一个新的socket ,这个socket会对应一个新的端口号;
客户端需要socket,connect:
多个客户端可以同时去连接同一个服务器端。
2、命令结果分析
由上图可知:local Address 是我们本地机IP,后面跟着的是端口号;
Foreign Address是与该主机连接的电脑ip,后面跟着的是分配的新的端口号(相当于accept之后的端口值);
23端口是telnet 服务,我们看到有2台foreign机通过telnet连接了本地机。
表示23端口在监听listen状态,表示是服务器端进程。
可以看到有两台客户端电脑在通过telnet连接服务器,服务器给两个客户端分别分配了49361和46100两个端口号;
3、总结:
客户端connect服务器端的23端口程序;
服务器端accept A客户端后,创建了一个新的socket,对应一个新的端口号49361;
服务器端accept B客户端后,创建了一个另一个新的socket,对应另一个新的端口号46100。
也就是说,最终一个客户端进程对应一个端口号。