Socket实现双机通信.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Socket实现双机通信

利用Socket实现双机通信 1、设计概述 1.1 TCP/IP协议 TCP/IP协议(传输控制协议/网际协议)是一种网络通信协议,是一种面向连接的可靠的传输协议。它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据传输格式以及传送方式。TCP/IP是Internet的基础协议。 TCP/IP协议的基本传输单位是数据报(Dataggram)。TCP协议负责把数据分成若干个Datagram,并给每个Datagram加上包头。通常把要发送的整块数据块叫一个报文,就是上面的Datagram,在发送报文之前,先把较长的报文划分为一各个个更小的等长的数据段,并在每个数据段之前加上一些控制信息组成的首部,也就是前面的包头。包头里包含了诸如目的地址和源地址等重要控制信息,这样一个个被划分的分组才能在因特网中独立地选择传输路径。如果传输过程中出现数据丢失或数据失真等异常情况,TCP协议会自动要求数据重发,并重新分组。TCP 协议保证数据传输的质量,IP协议保证数据的传输。 TCP/IP协议数据的传输是基于TCP/IP模型的四层结构:应用层、传输层、网络层和网络接口层。 两个主要的传输层协议:传输控制协议(TCP)和用户数据报协议(UDP)。由于设计是按照TCP/IP协议,有必要介绍下TCP。 TCP传输数据建立在面向连接的基础上,实现了一种“虚电路”的概念。双方通信之前,先建立连接,然后双方即可在其上发送数据,发送完毕后关闭连接。这种数据交换方式的有点是效率高,缺点是建立连接和关闭连接需要额外的开销。 TCP协议主要提供如下服务: 可靠的数据传输 面向连接的虚电路 缓冲的传输 重新排序 多路复用技术 高效的、全双工传输 流量控制 TCP协议提供的是一种可靠的数据流服务。得到的是一个顺序的无差错的数据流。 套接字(Socket) 套接字允许程序员把网络连接当成一个流,并向这个流读写字节。Socket对程序员掩盖了网络的底层细节,如纠错、包大小、包传输、网络地址等。数据在Internet中是以有限大小的分组的形式传输的。一个分组是一个数据报,包括首部和负载。首部包含目的地址和端口、源地址和端口以及用于保证可靠传输的各种其他管理信息。负载包含数据本身。但由于分组长度有限,通常必须将数据分解为多个分组,在目的地重新组合。在传输过程中,有可能发生一个或多个分组丢失或被破坏的情况,此时就需要重新分组。或者分组乱序到达,则需要重新排序。这些工作将是非常繁重。幸好的是套接字的出现是我们不必关心这些琐事,我们只要把网络看成一个流就行了。 套接字(socket)是网络协议传输层提供的接口。Socket是两个程序间进行双向数据传输的网络通信端点,由一个地址和一个端口号来标识,每个服务程序在提供服务时都需要在一个端口进行,而想使用该服务的客户机也必须连接改端口。 目前有两种套接字:流套接字(Stream Socket)和数据报套接字(Datagram Socket)。流套接字提供一个面向连接的、可靠的数据传输服务,保证数据无差错、无重复、按顺序发送,具有流量控制功能,数据被看成字节流,无长度限制。TCP即是一种基于流套接字的通信协议。本设计就是基于TCP/IP协议的Socket编程,在这种情况下,Socket可以看出是两个程序进行通信连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送到另外一个Socket中,使这段信息能传送到其他程序。每个基于TCP/IP的程序都赋予了一个端口号(0~65535),通过不同的端口号,区别服务器上运行的每一个应用程序和所提供的服务。不过一般要用1024以上的端口号,因为1024一下的端口号一般保留给系统服务使用。 1.2 设计目的和要求: ①利用WinSock来实现双机通信,理解TCP状态机图 ②要求使用WinSock编程,采用其中的TCP面向连接方式,实现文本数据的交换。 设计方案 本设计用对网络有得天独厚优势的、“一处编写、到处运行”的Java语言作为编程语言,用基于JDK1.6的MyEclipse集成开发环境进行开发。主要用到.Socket类和.ServerSocket类以及java.io包中的类来实现客户服务器端套接字对象的建立、连接、通信、释放连接,其中.Socket类是Java用来实现客户端TCP操作的基础类,在Java编制中,一切与TCP有关的操作都由Socket类负责,这个类本身使用直接代码通过主机操作系统的本地TCP栈进行通信,Socket的输入输出都通过流来实现。ServerSocket类的功能是在客户端通过Socket请求数据通信后,服务器端需要有一个响应客户端请求通信的服务程序,该服务程序将应用ServerSocket类来完成与客户端的通信:S

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档