Chinaunix首页 | 论坛 | 博客
  • 博客访问: 156830
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 360
  • 用 户 组: 普通用户
  • 注册时间: 2017-02-28 08:37
个人简介

没有绝活,怎能风骚.....

文章分类

全部博文(31)

文章存档

2017年(31)

我的朋友

分类: 网络与安全

2017-04-13 13:55:30

一、长连接与短连接的概念
    长连接:在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接;一般需要自己做在线维持
    短连接:指通信双方有数据交互时,就建立一个TCP连接,发送数据完成后,则断开此TCP连接;一般银行都用短连接
    短连接的优点:管理起来比较简单,存在的连接都是有用的连接,不需要额外的控制手段,比如:http的,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。
    其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。

二、长连接与短连接的操作过程
    通常的短连接的操作步骤是:连接->数据传输->关闭连接
    而长连接通常就是:连接->数据传输->保持连接(心跳)->数据传输->保持连接(心跳)->......->关闭连接
    这就要求长连接在没有数据通信时,定时发送数据包(心跳),以维持连接状态,短连接在没有数据传输时直接关闭就行了。
    
针对长连接和短连接的特点,面试官通常都会问什么时候选用长连接,什么时候选用短连接?
    长连接多用于操作频繁点对点的通信,而且连接数不能太多情况。因为每个TCP连接都需要三次握手,这需要时间,如果每个操作都是先连接,在操作的话,那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就OK了,不用建立TCP连接。如:数据库的连接用长连接,如果用短连接频繁地通信会造成socket错误,而且频繁的socket创建也是对资源的浪费。
   短连接的使用场合如http,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。
阅读(1500) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~