adclose)。在一个用户进程进行IO操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文件或设备上进行IO操作的进程。然后这个用户进程多次调用“读写”以传输数据。当所有的传输操作完成后,用户进程关闭调用,通知操作系统已经完成了对某对象的使用。在UNIX系统中,任何对IO的操作都是通过读或写一个文件描述符来实现的。一个文件描述符只是一个简单的整形数值,它代表一个被打开的文件(这里的文件指广义的UNIX文件)。
f在TCPIP网络应用中,通信的两个进程间相互作用的主要模式是客户服务器模式(Clie
tServermodel),即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。客户服务器模式的建立基于以下两点:首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用。其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是基与客户服务器模式的TCPIP。客户服务器模式过程中采取的是主动请求方式:首先服务器方要先启动,并根据请求提供相应服务:1打开一通信通道并告知本地主机,它愿意在某一公认地址上(周知口,如FTP为21)接收客户请求;2等待客户请求到达该端口;3接收到重复服务请求,处理该请求并发送应答信号。接收到并发服务请求,要激活一新进程来处理这个客户请求(如UNIX系统中用fork、exec)。新进程处理此客户请求,并不需要对其它请求作出应答。服务完成后,关闭此新进程与客户的通信链路,并终止。4返回第二步,等待另一客户请求。5关闭服务器客户方:1打开一通信通道,并连接到服务器所在主机的特定端口;2向服务器发服务请求报文,等待并接收应答;继续提出请求3请求结束后关闭通信通道并终止。TCPIP协议被集成到UNIX内核中时,相当于在UNIX系统引入了一种新型的IO操作。UNIX用户进程与网络协议的交互作用比用户进程与传统的IO设备相互作用复杂得多。首先,进行网络操作的两个进程客户服务器同机器上,如何建立它们之间的联系?其次,网络协议存在多种,如何建立一种通用机制以支持多种协议?这些都是网络应用编程界面所要解决的问题。在TCPIP协议中,套接字对应的端口号由于是用16位两进制r