天天看点

socket通信中的长连接和短连接

转自:https://blog.csdn.net/javajxz008/article/details/50468134

更加详细的分析:https://www.cnblogs.com/xujiming/p/5448721.html

一般的socket通信过程:

           建立连接

①客户端----------------服务端

           通讯

②客户端----------------服务端

           断开连接

③客户端----------------服务端

在一次TCP通讯中,先通过三次握手建立连接,客户端和服务端建立连接,进行数据的读取和操作。然后通过四次握手断开连接。

但是,在实际的操作过程中,有很多场景需要进行高并发的通讯。

TCP每次连接需要消耗资源,不能老是断了连,连了断,这样是很消耗资源的。在一些操作频繁,并发数不是很多的点到点的情况下(长时间连接也是消耗资源的),适合使用长连接。在一些操作不是很频繁,并发数不是很多的情况下,一点对多点的情况下,适合使用短连接。

长连接:客户端和服务端在进行一次TCP连接之后,不会立刻断开。还会在后续为数据提供读写服务。客户端和服务端采用心跳保持连接。在所有的数据读写完成之后,断开连接。

短连接:建立连接-----通讯-------断开连接。通讯后立马断开连接,释放资源。