浅谈socket长连接和短连接的区别

能用一句大白话说清楚的事,绝不用专业词汇说两句。

先看看一般的socket通讯模型是怎么样的:

                      建立连接

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


                        通讯

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


                        断开

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

在一次TCP通讯中,先通过三次握手建立连接,然后客户端和服务器端通讯(数据读写操作),最后四次握手断开连接。这是一次通讯,在实际的项目场景中,高并发通讯是

很常见的事,每建立一次TCP连接是要消耗资源的,总不能老是断开了连,连完了断,这样资源消耗是非常大的。在一些操作频繁,并发数不是很多(长时间持有连接也消耗资源)的点对点情况下,适合使用长链接。而在一些操作不多,但并发很大一点对多点的情况下,使用短连接较为适合。

啥是长连接,字面意思理解,就是连接的时间长呗,没错确实是这么个意思,但定量上理解,不能一直这么长下去吧。确实不能,最终还是要断的,好好说吧,即是客户端和服务器端建立连接后,连接在一次通讯过后不会立即断开,依然存在,供后续的数据读写服务。客户端和服务器端通过心跳保持连接,在所有的读写结束后,断开连接。而短链接指的是建立连接--通讯--断开这样的一次通讯。通讯结束后即刻断开连接,释放资源。


这里还有一个接受/发送方式的问题:

1.全双工:同一时刻,接受和发送方可同时读写数据。

2.半双工:同一时刻,接受和发送方在一个方向上只有一方能读或写数据。

3.单工:同一时刻,接受和发送方在固定方向上只有一方能读或写数据。


在加上同步异步,由此构建的通讯模型就非常丰富了,比如异步长连接,同步短连接等等。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/javajxz008/article/details/50468134

能用一句大白话说清楚的事,绝不用专业词汇说两句。

先看看一般的socket通讯模型是怎么样的:

                      建立连接

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


                        通讯

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


                        断开

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

在一次TCP通讯中,先通过三次握手建立连接,然后客户端和服务器端通讯(数据读写操作),最后四次握手断开连接。这是一次通讯,在实际的项目场景中,高并发通讯是

很常见的事,每建立一次TCP连接是要消耗资源的,总不能老是断开了连,连完了断,这样资源消耗是非常大的。在一些操作频繁,并发数不是很多(长时间持有连接也消耗资源)的点对点情况下,适合使用长链接。而在一些操作不多,但并发很大一点对多点的情况下,使用短连接较为适合。

啥是长连接,字面意思理解,就是连接的时间长呗,没错确实是这么个意思,但定量上理解,不能一直这么长下去吧。确实不能,最终还是要断的,好好说吧,即是客户端和服务器端建立连接后,连接在一次通讯过后不会立即断开,依然存在,供后续的数据读写服务。客户端和服务器端通过心跳保持连接,在所有的读写结束后,断开连接。而短链接指的是建立连接--通讯--断开这样的一次通讯。通讯结束后即刻断开连接,释放资源。


这里还有一个接受/发送方式的问题:

1.全双工:同一时刻,接受和发送方可同时读写数据。

2.半双工:同一时刻,接受和发送方在一个方向上只有一方能读或写数据。

3.单工:同一时刻,接受和发送方在固定方向上只有一方能读或写数据。


在加上同步异步,由此构建的通讯模型就非常丰富了,比如异步长连接,同步短连接等等。

猜你喜欢

转载自blog.csdn.net/qq_19734597/article/details/81046400