C++网络编程之路(二):TCP通信基本流程

不管多么复杂的服务器或客户端程序,其网络通信的基本原理一定如下所述:

对于服务器,其通信流程一般有如下步骤:

1 2 3 4 5 6

1. 调用 socket 函数创建 socket(侦听socket) 2. 调用 bind 函数 将 socket绑定到某个ip和端口的二元组上 3. 调用 listen 函数 开启侦听 4. 当有客户端请求连接上来后,调用 accept 函数接受连接,产生一个新的 socket(客户端 socket) 5. 基于新产生的 socket 调用 send 或 recv 函数开始与客户端进行数据交流 6. 通信结束后,调用 close 函数关闭侦听 socket

对于客户端,其通信流程一般有如下步骤:

1 2 3 4

1. 调用 socket函数创建客户端 socket 2. 调用 connect 函数尝试连接服务器 3. 连接成功以后调用 send 或 recv 函数开始与服务器进行数据交流 4. 通信结束后,调用 close 函数关闭侦听socket

上述流程可以绘制成如下图示:

不管多么复杂的服务器或客户端程序,其网络通信的基本原理一定如下所述:

对于服务器,其通信流程一般有如下步骤:

1 2 3 4 5 6

1. 调用 socket 函数创建 socket(侦听socket) 2. 调用 bind 函数 将 socket绑定到某个ip和端口的二元组上 3. 调用 listen 函数 开启侦听 4. 当有客户端请求连接上来后,调用 accept 函数接受连接,产生一个新的 socket(客户端 socket) 5. 基于新产生的 socket 调用 send 或 recv 函数开始与客户端进行数据交流 6. 通信结束后,调用 close 函数关闭侦听 socket

对于客户端,其通信流程一般有如下步骤:

1 2 3 4

1. 调用 socket函数创建客户端 socket 2. 调用 connect 函数尝试连接服务器 3. 连接成功以后调用 send 或 recv 函数开始与服务器进行数据交流 4. 通信结束后,调用 close 函数关闭侦听socket

上述流程可以绘制成如下图示:

对于上面的图,读者可能有疑问,为什么客户端调用 close() ,会和服务器端 recv() 函数有关。这个涉及到 recv() 函数的返回值意义,我们在下文中详细讲解。

针对这一例子,有具体的实现代码

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...
win11本地账户怎么改名?win11很多操作都变了样,用户如果想要...