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

Posted 穆晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十一篇:基于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过一段时间就没了,和设想一致。

以上是关于第十一篇:基于TCP的一对回射客户/服务器程序及其运行过程分析( 下 )的主要内容,如果未能解决你的问题,请参考以下文章

TCP回射客户程序:str_cli函数

TCP回射服务器程序:str_echo函数

TCP回射客户程序:main函数

UNIX网络编程笔记—TCP客户/服务器程序示例

TCP客户/服务器程序概述

《UNIX网络编程 卷1:套接字联网API》学习笔记——TCP客户/服务器程序示例