前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++网络编程之路(二):TCP通信基本流程

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

作者头像
我有一只萌妹子
发布2022-06-23 14:03:10
4800
发布2022-06-23 14:03:10
举报
文章被收录于专栏:编程碎碎念编程碎碎念

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

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

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() 函数的返回值意义,我们在下文中详细讲解。

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档