深入理解计算机操作系统——第11章:套接字接口
套接字接口:
套接字接口是一组函数,它们和Unix IO结合起来,用以创建网络应用。
14.4.1 套接字的地址结构
(1)从unix内核来看,一个套接字就是通信的一个端点。
(2)从unix应用程序来看,一个套接字就是一个有相应描述符的打开文件。
英特网的套接字地址结构如下:
11.4.2 socket函数
(1)AF_INET表明我们正在使用的是英特网
(2)SOCKE_STREAM 表示这个套接字是英特网连接的一个端点
(3)socket返回的clientfd描述符仅是部分打开的,还不能用于读写。
11.4.3 connect函数
客户端通过调用conect函数来建立和服务器的连接
14.4.4 open_clientfd函数
将socket和conect函数包装而成。客户端可以用它来和服务器建立连接。
在服务器端,bind,linsten,accept被用来和客户端建立连接。
14.4.5 bind函数
14.4.6 listen函数
服务器调用listen函数,告诉内核描述符是被服务器而不是客户端使用的。
11.4.7 open_listenfd函数
将socket,bind,listen组合成而成。
11.4.8 accept函数
监听描述符和连接描述符的区别:
监听描述符
(1)监听描述符是作为客户端请求连接的一个端点(由服务器创建)。
(2)典型的它被创建一次,并存在于服务器的整个生命周期。
已连接描述符
(3)已连接描述符是客户端和服务器之间已经建立起来的连接一个端点。
(4)服务器每次接受连接请求时都会创建一次。
(5)它只存在于服务器为一个客户端服务的过程中。