基于Socket长短连接切换C-S模型设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Socket长短连接切换C-S模型设计

基于Socket长短连接切换C/S模型设计   摘要:该文首先分析了TCP/IP协议的基本概念和Socket编程的基本原理,重点在于用C#实现了基于TCP/IP网络通信的长/短连接切换的程序模型,核心在于改进传统Socket连接中服务器的性能,根据需要进行长短连接的切换,有效的提高了连接效率及网络通信性能。该文对理解Socket通信原理和实际开发高效Socket应用程序有较大的参考价值。 关键词:TCP/IP;Socket长连接;Socket短连接 中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)08-1692-03 1 TCP/IP与Socket关系 TCP/IP协议(Transmission Control Protocol/Internet Protocol)定义了网络设备如何接入Internet以及数据如何在它们之间传输的标准。协议采用了四层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。如今TCP/IP协议已经成为计算机网络协议事实上的标准。如图1表明了这些协议的关系。 在计算机网络体系的TCP/IP四层结构中,终端的应用进程要相互通信,网络层为两端提供了逻辑通信,运输层为两端应用进程提供了端到端的逻辑通信。而TCP/IP协议簇的一个接口,提供了可靠的运输层协议。这就表明应用程序在使用数据传输之前,必须建立TCP连接。在传输数据完毕后,必须释放已经建立的TCP连接。其中,每一条TCP连接只能是点对点的,TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口号,而是套接字(Socket)。绑定端口号及IP地址即构成套接字。图2说明了应用程序、套接字、协议之间的关系。 2 Socket的长/短连接 Socket通信在客户端与服务器端的连接上分为长连接和短连接。具体的说,长连接指在客户机和服务器连接后,可以连续发送数据包,当没有数据包发送时,该连接一直保持,但这种建立起来的连接是不稳定的。一般在较长时间没有数据传输的情况下,双方需要发送“心跳包”来维持该连接有状态。长连接一般的步骤是:连接→数据传输→保持连接(心跳)→数据传输→保持连接(心跳)→……→关闭连接; 短连接是指客户端和服务端在需要通信时就建立一个Socket连接,在数据传输完成后关闭此连接。比如银行一般都采用短连接。短连接一般的步骤是:连接→数据传输→关闭连接; 下面分析一下使用长连接和短连接的典型环境。当数据在两端传输比较频繁,而且连接数不太多的情况下一般使用长连接。因为每个TCP的连接都需要三次握手,如果使用短连接不断的建立连接在关闭。这样就耗费了大量的时间,而且降低了网络通信的效率。所以在建立连接后不断开,通信时直接发送数据包就行。例如:数据库的连接一般使用长连接,如果用短连接频繁的通信会造成Socket错误。又如HTTP服务,只是连接、请求、关闭。这个过程时间较短,服务器在响应后即可关闭连接。 其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。 3 Socket网络通信长/短连接切换的C/S模型 Socket网络通信是C/S(Client/Server)模型在互联网上最常用的方式之一。服务器(Server)始终运行,所以用死循环来完成,其一直监听客户机(Client)的连接。当客户端发出连接时,服务器即可获得一个用于通信的套接字,客户机使用该套接字与服务器进行通信。本文采用长/短连接切换的C/S模型,其在服务器端设置了两层循环,第一层循环为死循环,重复监听客户端的Socket连接请求。第二层循环进行长/短连接的切换。本模型中添加了一个标志变量,在标志变量表示为长连接时,第二层循环始终保持,当标志变量为短连接时,退出第二层循环。图3说明了本模型中客户机与服务器进行长/短连接切换的通信步骤。 4 Socket通信中客户端的实现 客户端向服务器发起连接请求后,就被动的等待服务器的响应。下面给出主要的重点代码,典型的TCP客户端也都包括了以下内容: 1)创建一个Socket实例。用于向指定的远程主机和端口建立一个TCP连接。 Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个Socket IPEndPoint iep =new IPEndPoint(IPAddress.Parse(””), 12345); 2)通过发送ShortComT/ ShortComF字符串来确定当下是采用长连接还是短连接。字符串”Short

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档