CSAPP网络编程
客户端-服务器编程模型
每个网络应用都是基于客户端-服务器模型的,服务器管理某种资源,客户端向其请求,服务器处理请求,再发送响应,客户端再处理响应。这就是一个事务(模型中的基本操作)。
对一个主机而言,网络只是一种I/O设备。客户端和服务器通过在连接上发送和接受字节流来通信,这些字节流使用套接字接口函数和Unix I/O函数进行处理。
一个套接字是连接的一个端点,每个套接字都有相应的套接字地址,由一个因特网地址和一个16位的整数端口组成。客户端中的地址的端口是由内核自动分配的,称为临时端口。服务器中的通常是某个知名的端口。
一个连接是由它两端的套接字地址唯一确定的,这对套接字地址叫做套接字对(socket pair),表示为(cliaddr: cliport, servaddr: servport)
IP地址结构是一个32位无符号整数,放在所谓的IP地址结构中:
1 | struct in_addr{ |
IP地址总是以(大端法)网络字节顺序存放的,主机字节顺序是小端法,Unix提供了下面的转换函数:
1 |
|

