第十一篇:基于TCP的一对回射客户/服务器程序及其运行过程分析( 下 )

执行分析

1. 打开服务器进程:

       

2. 执行netstat -a命令观察当前的连接状态:

       

       第1条连接记录说明:绑定了本地主机的任意IP,端口为9877,目前处于监听状态。

3. 打开客户进程:

       

4. 执行netstat -a命令观察当前的连接状态,发现了两个新的连接:

       

       以及

       

       上面一个连接说明一个连接到服务器的连接,客户端临时端口是32818,目的端口正是先前的9877,连接状态为已建立,对应已连接套接字;

       下面一个连接说明一个连接到客户端的连接,服务端端口为9877,目的端口是32818,这个连接已经建立,对应的是已连接套接字;

       因为是在一台机器上做的测试,因此出现了上述两条“ 对称 ”的结果。

5. 然后测试该回射程序:

       

6. 接下来,ctrl+D中断连接,然后立马netstat -a查询连接状态:

       可以观察到,多了一条是客户端的TIME_WAIT状态的记录( 服务器端是没有什么状态显示的因为程序已经结束了 ):

       

7. 过一段时间,再次netstat -a,会发现上面那条记录已经没了。这是因为TIME_WAIT过一段时间就没了,和设想一致。

posted @ 2017-01-29 12:26  穆晨  阅读(256)  评论(0编辑  收藏  举报