Socket通信基本概念

socket: API
XMPP : 框架
环信, 融云, 亲加 : 平台

网上的两个程序通过一个双向的通信连接实现数据的交换, 这个连接的一端称为一个socket.可以简单理解为: 是通信连接的两个端口

应用程序通过"套接字"创建一个通道, 向网络发出请求或者应答网络请求.

Socket通信基本概念_第1张图片
Socket通信.png

网络通信的要素:
1: 网络上的请求就是通过socket来建立连接, 然后相互通信
2: IP地址(网络主机设备的唯一标识)
3: 端口号(定位程序)
3.1用于标识进程的逻辑地址(web应用程序,例如:数据库3306, 服务程序8080)
3.2有效端口: 0 ~ 65535, 其中 0 ~1024由系统使用或者保留, 开发中建议使用1024以上的端口
4:传输协议(用什么样的方式进行交互)
4.1通信的规则
4.2常用通信协议:TCP & UDP


TCP & UDP
*TCP(传输控制协议)
1.建立连接 , 形参传数据的通道
2.在连接中进行数据传输(数据不受限制)
3.通过建立三次握手完成连接, 可靠协议, 安全送达
4.必须建立连接, 效率低

*UDP(用户数据报协议)-->广播
1.将数据及源和目的封装成数据包中, 不需要建立连接
2.每个数据报的大小限制在64之内, 为了防止数据丢失
3.因为无需连接, 因此是不可靠协议
4.不需建立连接, 速度快


socket通信流程图


Socket通信基本概念_第2张图片
socket通信流程图.png

Socket是应用层与TCP / IP协议簇通信的中间软件抽象层, 它是一组接口.

客户端 / 服务器端socket连接的过程:
1.socket( 客户端 / 服务器端 ): 一个连接的两端都有一个socket
2.bind( 端口 ): 来标识当前的应用程序端口
3.listen( ): 监听端口, 有没有客户端连接到对应的端口
4.accept( ): 接受连接
5.connect( ): 建立连接
6.write( ): 客户端发送请求
7.read( ): 服务器端读请求 , 处理请求
8.write( ): 服务器端回应数据
9.read( ): 客户端接受请求数据
10.close( ): 客户端发送结束连接
11.read( ): 服务器读结束连接
12.close ( ): 服务器结束连接


  • HTTP 底层就是通过socket进来连接通信管道, 实现数据传输的.
  • HTTP是一个TCP的传输协议(方式), 他是一个可靠, 安全的协议.

服务器端:
1.建立socket-->绑定端口-->监听-->接收连接(给客户端一个编号--> 客户端按: 约定格式发送内容)

客户端:
1.创建socket
2.连接服务器, 指定(端口 + IP)
3.连接成功方法, 监听服务器消息
4.接收服务器端返回的数据(区分是第几次返回)
4.1第一次: 返回是socket编号 + 继续监听
4.2不是第一次: 判断数据内容(是数据 / 错误信息)

你可能感兴趣的:(Socket通信基本概念)