1 / 71
文档名称:

TCP的网络编程.pdf

格式:pdf   大小:228KB   页数:71页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

TCP的网络编程.pdf

上传人:yinjiong623147 2016/8/24 文件大小:228 KB

下载得到文件列表

TCP的网络编程.pdf

相关文档

文档介绍

文档介绍:核心提示:TCP/IP 通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket ,从而在通信的两端之间形成网络虚拟链路。一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。 Java 对基于TCP 协议的网络通信提供了良好的封装,Java 使用 Socket 对象 TCP/IP 通信协议是一种可靠的网络协议, 它在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路。一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。Java对基于TCP 协议的网络通信提供了良好的封装, Java 使用Socket 对象来代表两端的通信端口,并通过Socket 产生IO 流来进行网络通信。 TCP 协议基础 IP 上使用的一个关键协议,它的全称是 Protocol,即 协议,通常简称IP 协议。通过使用IP 协议, 成为一个允许连接不同类型的计算机和不同操作系统的网络。 要使两台计算机彼此之间进行通信, 必须使两台计算机使用同一种“语言”,IP协议只保证计算机能发送和接收分组数据。 IP 协议负责将消息从一个主机传送到另一个主机, 消息在传送的过程中被分割成一个个的小包。 尽管计算机通过安装IP 软件,保证了计算机之间可以发送和接收数据,但IP 协议还不能解决数据分组在传输过程中可能出现的问题。因此,若要解决可能出现的问题, 的计算机还需要安装TCP协议来提供可靠并且无差错的通信服务。 TCP 协议被称作一种端对端协议。这是因为它为两台计算机之间的连接起了重要作用:当一台计算机需要与另一台远程计算机连接时,TCP协议会让它们建立一个连接:用于发送和接收数据的虚拟链路。 TCP 协议负责收集这些信息包, 并将其按适当的次序放好传送, 在接收端收到后再将其正确地还原。T CP 协议保证了数据包在传送中准确无误。TCP协议使用重发机制:当一个通信实体发送一个消息给另一个通信实体后,需要收到另一个通信实体确认信息,如果没有收到另一个通信实体的确认信息,则会再次重发刚才发送的信息。 通过这种重发机制, TCP 协议向应用程序提供可靠的通信连接, 使它能够自动适应网上的各种变化。即使在 暂时出现堵塞的情况下,TCP也能够保证通信的可靠。 显示了TCP 协议控制两个通信实体互相通信的示意图: TCP 协议的通信示意图 综上所述,虽然IP 和TCP 这两个协议的功能不尽相同,也可以分开单独使用,但它们是在同一时期作为一个协议来设计的,并且在功能上也是互补的。只有两者的结合,才能保证 在复杂的环境下正常运行。凡是要连接到 的计算机,都必须同时安装和使用这两个协议,因此在实际中常把这两个协议统称作TCP/IP 协议。 使用 ServletSocket 创建TCP 服务器端 中看上去TCP 通信的两个通信实体之间并没有服务器端、客户端之分,但那是两个通信实体已经建立虚拟链路之后的示意图。在两个通信实体没有建立虚拟链路之前,必须有一个通信实体先做出“主动姿态”,主动接收来自其他通信实体的连接请求。 Java 中能接受其他通信实体连接请求的类是ServerSocket, ServerSocket 对象用于监听来自客户端的Socket 连接,如果没有连接,它将一直处于等待状态。ServerSocket 包含一个监听来自客户端连接请求的方法: l Socket accept() :如果接收到一个客户端Socket 的连接请求,该方法将返回一个与客户端Socket 对应的Socket(如图 所示每个TCP 连接有两个Socket);否则该方法将一直处于等待状态,线程也被阻塞。 为了创建ServerSocket 对象, ServerSocket 类提供了如下几个构造器: ? ServerSocket(int port):用指定的端口port 来创建一个 ServerSocket。该端口应该是有一个有效的端口整数值:0~ 65535。 ? ServerSocket(int port ,int backlog):增加一个用来改变连接队列长度的参数backlog。 ? ServerSocket(int port,int backlo g,InetAddress localAddr):在机器存在多个 IP 地址的情况下,允许通过 localAddr 这个参数来指定将ServerSocket 绑定到指定的IP 地址。 当ServerSocket 使用完毕, 应使用ServerSocket 的close() 方法来关闭该ServerSocket。通常情况下,服务器不应该只接受一个客户端请求,而应该不断地接受来自客户端的所有请求, 所