允许多个TCP应用程序在同一台计算机上运行
TCP中的端口与UDP中的端口相似--它们的数字范围都是1-65535。1024以下的端口是受限制的,只能被知名的服务(例如HTTP、FTP、SMTP、POP3和telnet)使用。表1列举了一些知名的服务以及与它们对应的端口。
知名的服务 服务端口
Telnet 23
SMTP(简单邮件传输协议) 25
HTTP(超文本传输协议) 80
POP 3 110
3、套接字操作
TCP套接字可以执行多种操作,包括:
建立到某个远程主机的连接。
给远程主机发送数据。
从远程主机接收数据。
关闭连接。
此外还有一些特殊类型的套接字,它们提供绑定到特定端口号的服务。这类套接字通常用在服务器中,可以执行下面一些操作:
绑定到某个本地端口
从远程主机接收输入的连接
从本地端口取消绑定。
这两种套接字可以被分为不同的类,要么是客户端使用的,要么是服务器使用的(由于某些客户端可以象服务器一样操作,还有些服务器可以象客户端一样操作)。但是,客户端和服务器的角色还是可以靠经验区分的。
二、TCP和客户端/服务器范型
在网络编程中(同样在其它形式的通讯中,例如数据库编程),使用套接字的应用程序也被分为两类--客户端程序和服务器程序。你可能对"客户端/服务器编程"术语比较熟悉,尽管这个术语的准确意思你不一定清楚。下面的范例就是讨论这个主题。
1、 客户端/服务器范型
客户端/服务器范型把软件分为两类--客户端程序和服务器程序。客户端软件启动一个连接并发送请求,而服务器软件监听连接并处理请求。在UDP编程环境中,没有建立实际的连接,并且UDP应用程序可以在相同的套接字上建立并接收请求。在TCP环境中,两台计算机之间建立了连接,客户端/服务器范型是相对应的。
当软件作为客户端或者服务器的时候,它严格地定义了角色以更容易适应我们所熟悉的思维模型。软件要么启动请求,要么处理请求。在两种角色之间切换使系统更加复杂。即使允许切换,在某个特定的时刻软件程序也只能是客户端,而另一个必须是服务器。如果两个同时是客户端,就没有服务器处理请求了。