socket中的长连接和短连接
长连接和短连接
当网络通信时采用TCP协议时,需在通信双方间建立连接,当读写操作完成后不再需要这个连接时就可以释放这个连接。
所谓的短连接就是通信双方建立一个TCP连接,完成数据传送后即断开此连接。
长连接是针对短链接而言,也就是长时间保持通信双方的连接状态,即在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果在一段时间内没有数据包发送,则需要通信双方发检测包(心跳包)以维持此连接。
传输方式
短连接操作步骤通常是:
建立连接→数据传输→关闭连接;
而长连接通常是:
建立连接→数据传输→保持连接(心跳)→数据传输→保持连接(心跳)→……→关闭连接;
区别与用途
短连接:
短连接一般用于点对多,高连接量的情况,比如HTTP服务等。因为对于Web这种有高访问量高并发的服务器而言,如果对每个用户都维护一个长连接的话,这对服务器是一个不可承担的压力,所以当并发量大但客户无需频繁操作的情况下可以采用短连接,这样管理起来比较简单,存在的连接都是有用的连接,不需要额外的控制手段来维持连接。
长连接:
通信的双方的TCP连接的建立是需要三次握手,释放则需要四次挥手,可见每次连接的建立都是需要消耗系统资源和时间的,所以对于需要操作频繁,点对点的通讯,而且连接数不能太多的情况通常会选择采用长连接。因为如果每次操作都要建立连接然后再操作的话处理速度会降低,所以每次操作下次操作时直接发送数