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

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

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

                      建立连接

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


                        通讯

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


                        断开

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

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

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

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


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

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

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

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


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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值