`
javafan_303
  • 浏览: 957100 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

什么是长连接、短连接?

阅读更多
什么是长连接,什么是短连接?

贴个经典的,看完了就应该没啥问题了 :

TCP/IP通信程序设计的丰富多样性

刚接触TCP/IP通信设计的人根据范例可以很快编出一个通信程
序,据此一些人可能会认为TCP/IP编程很简单。其实不然,
TCP/IP编程具有较为丰富的内容。其编程的丰富性主要体现在
通信方式和报文格式的多样性上。

一。通信方式
主要有以下三大类:
(一)SERVER/CLIENT方式
1.一个Client方连接一个Server方,或称点对点(peer to peer):
2.多个Client方连接一个Server方,这也是通常的并发服务器方式。
3.一个Client方连接多个Server方,这种方式很少见,主要
用于一个客户向多个服务器发送请求情况。

(二)连接方式
1.长连接
Client方与Server方先建立通讯连接,连接建立后不断开,
然后再进行报文发送和接收。这种方式下由于通讯连接一直
存在,可以用下面命令查看连接是否建立:
netstat –f inet|grep 端口号(如5678)。
此种方式常用于点对点通讯。

2.短连接
Client方与Server每进行一次报文收发交易时才进行通讯连
接,交易完毕后立即断开连接。此种方式常用于一点对多点
通讯,比如多个Client连接一个Server.

(三)发送接收方式
1.异步
报文发送和接收是分开的,相互独立的,互不影响。这种方
式又分两种情况:
(1)异步双工:接收和发送在同一个程序中,有两个不同的
子进程分别负责发送和接收
(2)异步单工:接收和发送是用两个不同的程序来完成。
2.同步
报文发送和接收是同步进行,既报文发送后等待接收返回报文。
同步方式一般需要考虑超时问题,即报文发上去后不能无限等
待,需要设定超时时间,超过该时间发送方不再等待读返回报
文,直接通知超时返回。

实际通信方式是这三类通信方式的组合。比如一般书上提供的
TCP/IP范例程序大都是同步短连接的SERVER/CLIENT程序。有的
组合是基本不用的,比较常用的有价值的组合是以下几种:

同步短连接Server/Client
同步长连接Server/Client
异步短连接Server/Client
异步长连接双工Server/Client
异步长连接单工Server/Client

其中异步长连接双工是最为复杂的一种通信方式,有时候经
常会出现在不同银行或不同城市之间的两套系统之间的通信。
比如金卡工程。由于这几种通信方式比较固定,所以可以预
先编制这几种通信方式的模板程序。

二.报文格式
通信报文格式多样性更多,相应地就必须设计对应的读写报文的接
收和发送报文函数。

(一)阻塞与非阻塞方式 
1.非阻塞方式
读函数不停地进行读动作,如果没有报文接收到,等待一段时间后
超时返回,这种情况一般需要指定超时时间。
2.阻塞方式
如果没有报文接收到,则读函数一直处于等待状态,直到有报文到达。

(二)循环读写方式
1.一次直接读写报文
在一次接收或发送报文动作中一次性不加分别地全部读取或全部
发送报文字节。
2.不指定长度循环读写
这一般发生在短连接进程中,受网络路由等限制,一次较长的报
文可能在网络传输过程中被分解成了好几个包。一次读取可能不
能全部读完一次报文,这就需要循环读报文,直到读完为止。

3.带长度报文头循环读写
这种情况一般是在长连接进程中,由于在长连接中没有条件能够
判断循环读写什么时候结束,所以必须要加长度报文头。读函数
先是读取报文头的长度,再根据这个长度去读报文.实际情况中,
报头的码制格式还经常不一样,如果是非ASCII码的报文头,还必须
转换成ASCII,常见的报文头码制有:
(1)n个字节的ASCII码
(2)n个字节的BCD码
(3)n个字节的网络整型码

以上是几种比较典型的读写报文方式,可以与通信方式模板一起
预先提供一些典型的API读写函数。当然在实际问题中,可能还
必须编写与对方报文格式配套的读写API.

在实际情况中,往往需要把我们自己的系统与别人的系统进行连接,
有了以上模板与API,可以说连接任何方式的通信程序都不存在问题。
分享到:
评论

相关推荐

    Java实现Socket长连接和短连接

    Socket连接分为两种类型:长连接和短连接。这两种连接方式各有特点,适用于不同的应用场景。 **1. 短连接(Short Connection)** 短连接通常用于一次性、非持久性的通信,如HTTP协议就是典型的短连接。在短连接中...

    长连接和短连接的解释和说明

    什么是长连接? 长连接是指客户端与服务器建立连接后,在一段时间内持续保持连接状态的方式。在这种模式下,连接一旦建立,就可以被多次重复利用来进行数据传输,直到双方都同意断开连接为止。长连接的核心特点...

    TCP中长连接短连接

    本文将详细探讨TCP中的长连接和短连接,这两种连接方式在实际应用中的差异和选择。 长连接,也称为持久连接,指的是客户端(Client)与服务器端(Server)在完成连接建立后,保持连接状态不立即断开,以便于进行多...

    Mina实现长连接和短连接实例

    Apache Mina是一个流行的Java框架,专门用于简化和优化网络应用开发,它支持多种协议如TCP/IP、UDP/IP等,并提供了长连接和短连接的支持。在这个实例中,我们将探讨如何使用Mina实现长连接和短连接。 首先,理解长...

    Mina长连接短连接实例

    首先,我们需要了解什么是长连接和短连接。在TCP/IP通信中,短连接是指一次完整的通信过程(如HTTP请求)结束后,客户端和服务器端都会立即关闭连接,释放资源。而长连接则是在一次连接建立后,保持连接不断开,可以...

    c# Socket长连接 短链接 自己封装 通讯

    总结来说,这个主题涵盖了C#中基于Socket的网络编程,特别是长连接和短连接的实现,以及如何设计和使用自定义的通信协议。这样的知识对于构建高性能、可靠且可扩展的网络应用至关重要。开发者需要理解TCP/IP协议、...

    socket短连接和长连接 多线程的应用

    "短连接"和"长连接"是Socket连接的两种不同模式,它们在处理网络请求时有着显著的区别。 短连接(Short Connection)通常用于一次性或者较少交互的服务,如HTTP协议就是基于短连接的。在短连接中,每次通信完成后,...

    [线上问题] “服务端长连接与客户端短连接引起Nginx产生大量\"TIME_WAIT\"状态的线程”的问题分析解决

    本文讨论了在线上环境中,服务端长连接和客户端短连接配置不当导致Nginx服务器产生大量“TIME_WAIT”状态线程的问题,同时提供了问题的分析和解决方法。本文主要涉及的网络编程知识点包括长连接与短连接的定义和区别...

    TCP/IP长连接和短连接

    在TCP/IP通信程序设计中,长连接和短连接是两种主要的连接方式,它们各自有其特点和适用场景。...无论是长连接还是短连接,都有其适用的领域和优缺点,合理选择和运用才能实现高效可靠的网络通信。

    基于Apache Mina实现的TCP长连接和短连接实例

    ### 基于Apache Mina实现的TCP长连接和短连接实例 #### 一、引言 Apache Mina是Apache组织推出的一款优秀的网络应用程序框架,它的全称是Multipurpose Infrastructure for Network Applications(多用途网络应用...

    TCP长连接与短连接示意图

    TCP长连接与短连接示意图

    线程、线程池、TCP协议长连接短连接的基本入门知识

    在计算机科学领域,多线程和线程池是并发编程中的关键概念,而TCP协议作为互联网通信的基础,其长连接和短连接特性则直接影响网络应用的性能和效率。本篇文章将深入浅出地介绍这些基础知识,帮助初学者理解并掌握。 ...

    长连接,短连接的介绍

    长连接短连接介绍 1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开,然后再进行报文发送和接收。 2.短连接 Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种...

    TCP长短连接简单Demo

    TCP连接分为长连接和短连接,这两种连接方式各有其特点和适用场景。本Demo是用C++语言在VS2017环境下编写的,旨在帮助开发者理解TCP长连接和短连接的实现。 首先,我们要理解TCP连接的基本概念。TCP是一种面向连接...

    MQTT长连接

    与HTTP协议的短连接不同,MQTT的长连接允许客户端和服务器之间保持持续的会话状态,从而减少了建立和关闭连接的开销,提高了数据传输效率。这种连接方式对于需要频繁交换数据或者需要长时间在线的设备尤其重要,例如...

    netty 实现长连接

    在传统的HTTP或WebSocket等协议中,每次请求都是一个短连接,而长连接则允许客户端和服务器之间保持持续的连接状态,从而减少建立连接的开销,提高通信效率。 描述中的链接指向了一篇关于Netty实现长连接的博客文章...

    [线上问题] Nginx与Tomcat、Client之间请求的长连接配置不一致问题分析解决

    2. **Nginx配置**:Nginx是一个高性能的HTTP和反向代理服务器,它支持长连接和短连接。在Nginx中,可以通过配置来控制连接的类型,例如,通过设置`keepalive_timeout`和`proxy_http_version`等参数来启用和调整长...

    长连接和短连接性能测试结果差异.docx

    在IT行业中,性能测试是评估系统能力的关键环节,特别是对于网络通信来说,长连接和短连接的选择直接影响到系统的效率和资源消耗。本文将基于提供的文件内容,深入探讨TCP长连接和短连接的区别以及它们在性能测试中...

    聊天室(自己实现HTTP长连接)

    在实际的网络应用中,HTTP长连接是解决实时通信问题的一种技术手段,它不同于HTTP短连接,长连接可以避免频繁的建立和关闭连接,从而提高效率和降低延迟。 【知识点详解】: 1. HTTP协议基础:HTTP(HyperText ...

Global site tag (gtag.js) - Google Analytics