管理进化

什么是socket编程


本文结合TCP/IP向大家介绍socket编程。

socket 与 TCP/IP 之间是唇齿相依般的关系,联系紧密,它在网络中所处的位置大致就是下面的黑色部分,应用层与传输层之间。

其中的传输层就是TCP/IP 所在的地方,而你平时通过代码编写的应用程序大多属于应用层范畴,socket 在这里起到就是连接应用层与传输层的作用。

socket 的诞生是为了应用程序能够更方便的将数据经由传输层来传输,所以它本质上就是对 TCP/IP 的运用进行了一层封装,然后应用程序直接调用 socket API 即可进行通信。那么它是如何工作的呢?它分为 2 个部分,服务端需要建立 socket 来监听指定的地址,然后等待客户端来连接。而客户端则需要建立 socket 并与服务端的 socket 地址进行连接。

这图展示的就是建立TCP/IP 连接的过程,经典的叫法为“三次握手”的过程。顾名思义,这个过程中来回产生了三次网络通信。

接下来的数据传输过程就简单很多,发送数据就是客户端往服务端通信,服务端处理完之后的数据返回则相反。

值得注意的是,传输的过程涉及到数据 Copy,不过这些 Copy 是必不可少的。其中的发送缓冲区和接收缓冲区就是套接字缓存 (socket buffer)。

连接使用完之后需要关闭,不过 TCP/IP 连接关闭过程比创建更复杂一些,次数多了一次,这就是经典的“四次握手”过程。

简单总结一下 socket。socket 是进程间数据传输的媒介,为了保证连接的可靠,需要特别注意建立连接和关闭连接的过程。为了确保准确、完整的数据传输,客户端和服务端来回进行了多次网络通信才得以完成连接的创建和关闭,这同时也是在运用一个连接时所花费的额外成本。

以上就是socket编程的介绍。

| 相关阅读

1、网易云信:融合通信云服务专家、通信与视频 PaaS 平台

集网易 24 年 IM 以及音视频技术打造的融合通信云服务专家,稳定易用的通信与视频 PaaS 平台。提供融合通信与视频的核心能力与组件,包含 IM 即时通讯、5G 消息平台、一键登录、信令、短信与号码隐私保护等通信服务,音视频通话、直播、点播、互动直播与互动白板等音视频服务,视频会议等组件服务,并联合网易易盾推出一站式安全通信方案「安全通」。目前,网易云信已经成功发送 1.6 万亿条消息,覆盖智能终端 SDK 数累计超过 186 亿,我们期待每个智能终端都有云信的融合通信能力。

2、网易云信在基于人工智能技术的音视频优化和通信安全方面具有很大优势

钛媒体消息,近期Gartner发布了2021年《Market Guide for Communications Platform as a Service》(CPaaS市场指南),网易智企旗下融合通信云服务“网易云信”入围该报告。Gartner指出,网易云信在基于人工智能技术的音视频优化和通信安全方面具有很大优势。

据悉,网易云信成立六年间帮助120万企业开发者成功发送 16000亿条消息,全球注册应用数超48万,覆盖智能终端SDK数累计超186亿,覆盖用户超10亿,覆盖中国 90%以上智能手机用户,已在娱乐社交、教育、金融领域提供行业融合通信云服务解决方案。

网易云信表示,未来将继续深耕娱乐社交、教育、金融三大行业,并将以IM和RTC为基础,推出“融合通信+∞”无限融合计划。

智齿客服