你所不知道的socket

280 阅读2分钟

Socket范围很大, 可以有很多意思,和IT较相关的本意大致是指在端到端的一个连接中,这两个端叫做Socket。

Http与Socket

Http连接使用的是“请求-响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务端才能向客户端返回数据。

http是半双工通信, 这种半双工通信的特点就是:

  • 同一时刻数据是单向流动的,客户端向服务端请求数据->单向,服务端向客户端返回数据->单向
  • 服务器不能主动向客户端发送请求

Socket通信则是在双方建立连接后,可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端向服务器发送请求。

socket的类型

根据不同的底层协议,Socket的实现是多样化的。在这主要介绍TCP/IP协议簇当中主要的Socket类型为流套接字(streamsocket)和数据报套接字(datagramsocket)。

  • 流套接字将TCP作为其端对端协议,提供了一个可信赖的字节流服务。
  • 数据报嵌套字使用UDP协议,提供数据打包发送数据。

websocket

  • 啥是Websocket? WebSocket实现了,在客户端和服务端上建立了一个长久的连接,两边可以任意发数据嗨皮

当然如果知道的更深一层的话,要知道它属于应用层的协议,它基于TCP传输协议,并复用HTTP的握手通道

  • 与Socket的关系 Socket应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

Websocket 协议解决了服务器与客户端全双工通信的问题

  • websocket与Http的关系
  1. WebSocketHTTP都是基于TCP协议的两个不同的协议
  2. WebSocket依赖于HTTP连接**