网络编程
客户端和服务器是进程,客户端-服务器模型中的基本操作是事务(transaction),一个客户端-服务器事务由以下四步组成:
- 当一个客户端需要服务时,它向服务器发送一个请求,发起一个事务。
- 服务器收到请求后,解释它,并以适当的方式操作它的资源。
- 服务器给客户端发送一个响应,并等待下一个请求。
- 客户端收到响应并处理它。
IP
一个IP地址就是一个32位无符号整数。
网络和主机字节顺序转换函数:
#include <arpa/inet.h>
uint32_t htonl(uint32_t hostlong);
uint16_t htons(uint16_t hostshort);
返回:按照网络字节顺序的值
uint32_t ntohl(uint32_t netlong);
uint16_t ntohs(uint16_t netshort);
返回:按照主机字节顺序的值
IP地址和点分十进制串之间的转换函数:
#include <arpa/inet.h>
int inet_pton(AF_INET, const char *src, void *dst);
成功:1
src为非法点分十进制地址:0
出错:-1
const char *inet_ntop(AF_INET, const void *src, char *dst, socklen_t size);
成功:指向点分十进制字符串的指针
出错:NULL
因特网客户端和服务器通过在连接上发送和接受字节流来通信。
一个连接是由它两端的套接字地址唯一确定的,套接字对,cliaddr:cliport, servaddr:servport
套接字接口
套接字地址结构:
/* Ip address structure */
struct <