长连接与短连接的区别(tcp socket http概念原理是一样的) 一、长连接与短连接:长连接:client方与server方先建立连接,连接建立后不断开,然后再进行报文发送和接收。这种方式下由于通讯连接一直存在。此种方式常用于P2P通信。短连接:Client方与server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此方式常用于一点对多点通讯。C/S通信。二、长连接与短连接的操作过程:短连接的操作步骤是:建立连接——数据传输——关闭连接...建立连接——数据传输——关闭连接长连接的操作步骤是:建立连接——数据传输...(保持连接)...数据传输——关闭连接三、长连接与短连接的使用时机:长连接:短连接多用于操作频繁,点对点的通讯,而且连接数不能太多的情况。每个TCP连接的建立都需要三次握手,每个TCP连接的断开要四次握手。如果每次操作都要建立连接然后再操作的话处理速度会降低,所以每次操作下次操作时直接发送数据就可以了,不用再建立TCP连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,频繁的socket创建也是对资源的浪费。短连接:web网站的http服务一般都用短连接。因为长连接对于服务器来说要耗费一定的资源。像web网站这么频繁的成千上万甚至上亿客户端的连接用短连接更省一些资源。试想如果都用长连接,而且同时用成千上万的用户,每个用户都占有一个连接的话,可想而知服务器的压力有多大。所以并发量大,但是每个用户又不需频繁操作的情况下需要短连接。总之:长连接和短连接的选择要视需求而定。四、发送接收方式:1、异步:报文发送和接收是分开的,相互独立,互不影响的。这种方式又分两种情况:异步双工:接收和发送在同一个程序中,有两个不同的子进程分别负责发送和接送。异步单工:接送和发送使用两个不同的程序来完成。2、同步:报文发送和接收是同步进行,即报文发送后等待接送返回报文。同步方式一般需要考虑超时问题,试想我们发送报文以后也不能无限等待啊,所以我们要设定一个等待时候。超过等待时间发送方不再等待读返回报文。直接通知超时返回。五、报文格式:通信报文格式多样性更多,相应地就必须设计对应的读写报文的接

收和发送报文函数。阻塞与非阻塞方式1、非阻塞方式:读函数不停的进行读动作,如果没有报文接收到,等待一段时间后超时返回,这种情况一般需要指定超时时间。2、阻塞方式:如果没有接收到报文,则读函数一直处于等待状态,知道报文到达。循环读写方式1、一次直接读写报文:在一次接收或发送报文动作中一次性不加分别地全部读取或全部发送报文字节。2、不指定长度循环读写:这一版发生在短连接进程中,受网络路由等限制,一次较长的报文可能在网络传输过程中被分解成很多个包,一次读取可能不能全部读完一次报文,这就需要循环读取报文,知道读完为止。3、带长度报文头循环读写:这种情况一般在长连接中,由于在长连接中没有条件能够判断循环读写什么时候结束。必须要加长度报文头。读函数先是读取报文头的长度,再根据这个长度去读报文,实际情况中,报头码制格式还经常不一样,如果是非ASCII的报文头,还必须转换成ASCII常见的报文头编制有:1、n个字节的ASCII码。2、n个字节的BCD码。3、n个字节的网络整型码。

以上是几种比较典型的读写报文方式,可以与通信方式模板一起 预先提供一些典型的API读写函数。

当然在实际问题中,可能还必须编写与对方报文格式配套的读写API. 在实际情况中,往往需要

把我们自己的系统与别人的系统进行连接, 有了以上模板与API,可以说连接任何方式的通信程序

都不存在问题。

java socket 短连接_socket长连接和短连接的区别相关推荐

  1. java socket 心跳包_socket中的短连接与长连接,心跳包示例详解

    TCP连接简介 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接, 当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接, 连接的建立是需要三 ...

  2. Java 用suo.nz给长链接生成短链接

    官方地址 http://suo.nz/api.html 这里使用json格式的方式给长连接转成短连接 private HashMap<String, Object> doSendSms(B ...

  3. java socket程序应用_socket应用小程序

    1.包含客户端和服务器两部分程序,并且两个程序能分开独立运行. 2.客户端可以输入服务器地址和端口,连接服务器. 3..服务器能接受客户端连接,并向客户端输出发送的字符串. 代码如下: 服务器端: p ...

  4. 长链接转短链接java_长链接生成短链接Java源码(调用百度接口)

    public static DefaultHttpClient httpclient; static { httpclient = new DefaultHttpClient(); //httpcli ...

  5. java请求百度短链接_长链接生成短链接Java源码(调用百度接口)

    public static DefaultHttpClient httpclient; static { httpclient = new DefaultHttpClient(); //httpcli ...

  6. java socket 端口复用_Socket端口复用【转】

    一.什么是端口复用: 因为在winsock的实现中,对于服务器的绑定是可以多重绑定的,在确定多重绑定使用谁的时候,根据一条原则是谁的指定最明确则将包递交给谁,而且没有权限之分.这种多重绑定便称之为端口 ...

  7. 如何将微信公众号文章的长网址转换为短网址?

    微信公众号的文章偶尔看到喜欢的,我也会转载过来,而且根据主题对转载文章的设置会保留原文作者及链接,但是微信公众号文章的链接地址确实是太长了,在文末显示一大串复杂的长网址确实不美观,这个时候就是短网址出 ...

  8. 简智音科技:抖音短视频时长几何为好呢?

    抖音短视频自全网火的遍地开花后,发展便一路顺风顺水,且在同行类占据金字塔顶端,至今无任何社交媒体软件打破此记录.提及抖音,大多数人不得不提短视频创作功能何其强大,能使人一夜暴富,同时还能影响每个人的生 ...

  9. 长视频与短视频,其底层逻辑有何不同

    作者:卫夕 全文共 6713 字 11 图,阅读需要 15 分钟 ---- / BEGIN / ---- 短视频的能量是长视频的9倍? 很多人看到这个结论立马就开始激动了:9倍是如何算出来的?为什么不 ...

最新文章

  1. Spring单实例、多线程安全、事务解析
  2. 简单而又常用的基本的交换路由的一些配置命令
  3. 信息学奥赛一本通 1163:阿克曼(Ackmann)函数
  4. ASP.NET MVC +EasyUI 权限设计(三)基础模块
  5. 泡泡玛特2021年营收44.9亿元 同比增长78.7%
  6. distinct返回null报错_在Java中如何避免“!=null”式的判空语句?
  7. X86平台下基于grub2+busybo+linux-2.6.36制作linux系统
  8. matlab中的turbo码,基于Matlab的Turbo码仿真研究
  9. 【数据库】SQL建表
  10. Android文字图像识别并翻译的简单实现
  11. android psp 模拟器卡,手机PSP游戏闪退或卡顿的解决方法
  12. OHSAS18001与ISO14001体系的一体化及其审核(转载)
  13. 半空间数据空间化相关接口
  14. 蓝桥杯第十二届省赛JAVA C组 试题 F: 时间显示
  15. altium designer 网络标签作用范围(Duplicate Net Names Wire解决办法)
  16. 苹果发布“合二为一”芯片,华为公布“芯片叠加”的专利
  17. 如何使IE地址栏里显示自己的小图片?
  18. 互联网理财产品上周收益播报排行榜
  19. ICCV2021|底层视觉(图像生成,图像编辑,超分辨率等)相关论文汇总(附论文链接/代码)[持续更新]
  20. 2023 年 5 大人工智能 (AI) 趋势

热门文章

  1. 2021-10-20名词概念
  2. 快递查询工具,一键查看所有快递的发出物流信息、最后更新物流
  3. 新一代子域名收集工具
  4. 基于SSM的房屋出租/出售管理系统
  5. 如何计算 R 中的基尼系数(附示例)
  6. memcahe的安装、启功和关闭
  7. java Byte数据截取
  8. VM(虚拟机)以及Ubuntu的下载安装
  9. 不设限的电影二维码!
  10. 假设我们在对有符号值使用补码运算的32位机器人运行代码。对于有符号值使用的是算术右移,而对于无符号值使用的是逻辑右移