一、长连接与短连接的概念
长连接:指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接;一般需要自己做在线维持。
短连接:指通信双方有数据交互时,就建立一个TCP连接,发送数据完成后,则断开此TCP连接;一般银行都用短连接。
短连接的优点:管理起来比较简单,存在的连接都是有用的连接,不需要额外的控制手段,比如:http的,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。
其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。
二、长连接与短连接的操作过程
通常的短连接的操作步骤是:连接->数据传输->关闭连接;
而长连接通常就是:连接->数据传输->保持连接(心跳)->数据传输->保持连接(心跳)->......->关闭连接;
这就要求长连接在没有数据通信时,定时发送数据包(心跳),以维持连接状态,短连接在没有数据传输时直接关闭就行了。
针对长连接和短连接的特点,面试官通常都会问什么时候选用长连接,什么时候选用短连接?
长连接多用于操作频繁,点对点的通信,而且连接数不能太多的情况。因为每个TCP连接都需要三次握手,这需要时间,如果每个操作都是先连接,在操作的话,那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就OK了,不用建立TCP连接。如:数据库的连接用长连接,如果用短连接频繁地通信会造成socket错误,而且频繁的socket创建也是对资源的浪费。
短连接的使用场合如http,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。
阅读(1500) | 评论(0) | 转发(0) |