Java网络编程之传输控制协议 - 编程入门网
会是计算机之间通讯的最高效率的 途径。还应该有另外一些的复杂性,你可以讨论在某个底线之上设计和建立软件 ,为程序员提供足够的复杂性。典型情况下开发者欢迎软件开发复杂性的降低, TCP就实现了这种功能。TCP允许程序员用一种完全不同的方式思考问题,而这种 方式更加现代化。数据不是被处理为不连续的单元(数据报包),而是被处理为 连续的流,就像目前读者所熟悉的I/O流。TCP套接字延续了传统的Unix编程,在 Unix编程中通讯与文件输入和输出是一样处理的。无论开发者写入网络套接字、 通讯管道、数据结构、用户控制台或文件的时候,这种机制都时相同的。当然它 也同样应用与读取信息。这使得通过TCP套接字进行通讯比通过数据报包通讯更 加简单。
2、使用端口在应用程序之间通讯 很明显,TCP与UDP之间差别巨大,但是在两种协议之间也有一项重要的相似 性。两种都共享了通讯端口的概念,它可以区别各个应用程序。在相同的端口上 可以运行多个服务和客户端,而且希望不给它们分配端口号而挑选出某个应用程 序是不可能的。当TCP套接字建立到某台计算机的连接的时候,它需要两部分非 常重要的信息才能连接到远程客户端--该计算机的IP地址和端口号。此外,本地 的IP地址和端口号也将绑定到它上面,因此远程计算机能够识别是哪一个应用程 序建立了连接(图3所示)。总之,你不会希望你自己的电子邮件被在相同系统 上运行软件的其它用户访问。 图3:本地端口识别了其它程序建立的到某个应用程序的连接 Java网络编程之传输控制协议(2)时间:2010-12-16 天极 陶刚允许多个TCP应用程序在同一台计算机上运行 TCP中的端口与UDP中的端口相似--它们的数字范围都是1-65535。1024以下的 端口是受限制的,只能被知名的服务(例如HTTP、FTP、SMTP、POP3和telnet) 使用。表1列举了一些知名的服务以及与它们对应的端口。 表1:协议和与它们相关的端口 知名的服务 服务端口 Telnet 23 SMTP(简单邮件传输协议) 25 HTTP(超文本传输协议) 80 POP 3 110 3、套接字操作 TCP套接字可以执行多种操作,包括: 建立到某个远程主机的连接。 给远程主机发送数据。 从远程主机接收数据。 关闭连接。 此外还有一些特殊类型的套接字,它们提供绑定到特定端口号的服务。这类 套接字通常用在服务器中,可以执行下面一些操作: 绑定到某个本地端口 从远程主机接收输入的连接 从本地端口取消绑定。 这两种套接字可以被分为不同的类,要么是客户端使用的,要么是服务器使 用的(由于某些客户端可以象服务器一样操作,还有些服务器可以象客户端一样 操作)。但是,客户端和服务器的角色还是可以靠经验区分的。 二、TCP和客户端/服务器范型 在网络编程中(同样在其它形式的通讯中,例如数据库编程),使用套接字 的应用程序也被分为两类--客户端程序和服务器程序。你可能对"客户端/服务器 编程"术语比较熟悉,尽管这个术语的准确意思你不一定清楚。下面的范例就是 讨论这个主题。 1、客户端/服务器范型 客户端/服务器范型把软件分为两类--客户端程序和服务器程序。客户端软件 启动一个连接并发送请求,而服务器软件监听连接并处理请求。在UDP编程环境 中,没有建立实际的连接,并且UDP应用程序可以在相同的套接字上建立并接收 请求。在TCP环境中,两台计算机之间建立了连接,客户端/服务器范型是相对应 的。 当软件作为客户端或者服务器的时候,它严格地定义了角色以更容易适应我 们所熟悉的思维模型。软件要么启动请求,要么处理请求。在两种角色之间切换 使系统更加复杂。即使允许切换,在某个特定的时刻软件程序也只能是客户端, 而另一个必须是服务器。如果两个同时是客户端,就没有服务器处理请求了。 客户端/服务器范型是一个 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |