课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > 长连接和短连接的区别
  • 长连接和短连接的区别

    发布:昆明Java培训      来源:达内新闻      时间:2016-08-16

  • 昆明java培训的老师发现很多同学在学习过程中分不清长连接和短连接,所以昆明java培训老师现在给大家讲讲它们的区别。

    短连接

    连接->传输数据->关闭连接

    HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。

    也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。

    长连接

    连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。

    长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。

    http的长连接

    HTTP也可以建立长连接的,使用Connection:keep-alive,HTTP 1.1默认进行持久连接。HTTP1.1和HTTP1.0相比较而言,最大的区别就是增加了持久连接支持(貌似最新的 http1.0 可以显示的指定 keep-alive),但还是无状态的,或者说是不可以信任的。

    什么时候用长连接,短连接?

    长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况,。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。

    而像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好。

    总之,长连接和短连接的选择要视情况而定。

    发送接收方式

    1、异步

    报文发送和接收是分开的,相互独立的,互不影响。这种方式又分两种情况:

    (1)异步双工:接收和发送在同一个程序中,由两个不同的子进程分别负责发送和接收

    (2)异步单工:接收和发送是用两个不同的程序来完成。

    2、同步

    报文发送和接收是同步进行,既报文发送后等待接收返回报文。 同步方式一般需要考虑超时问题,即报文发出去后不能无限等待,需要设定超时时间,超过该时间发送方不再等待读返回报文,直接通知超时返回。

    在长连接中一般是没有条件能够判断读写什么时候结束,所以必须要加长度报文头。读函数先是读取报文头的长度,再根据这个长度去读相应长度的报文。

    同学们听懂了昆明java培训老师讲的长连接和短连接了吧,愿同学们好好学习java。

    推荐文章

上一篇:java运行时异常处理

下一篇:从一次 FULL GC 卡顿谈对服务的影响

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:12/29

Java--零基础业余班

Java--零基础业余班

开班日期:12/29

Java--周末提升班

Java--周末提升班

开班日期:12/29

Java--零基础周末班

Java--零基础周末班

开班日期:12/29

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56