发送结构化网络消息
纯字符串网络信息 优点:处理简易命令方便快捷; 缺点:传递大量数据时字符串解析消耗大 企业中的应用方式:json、xml、自定义格式的字符数据格式
使用结构化的二进制数据流传输网络消息 优点:简单、方便、解析快,消耗低 缺点:需要严格的网络字节序
# 网络数据报文的格式定义
- 报文有两部分,包头和包体,是网络消息的基本单元
- 包头:描述本次消息包的大小,描述数据的作用
- 包体:数据
# select模型
服务端升级为select模型处理多客户端
// windows下第一个参数不起作用
// nfds是一个整数值,是指fd_set集合中所有描述符(socket)的范围,而不是数量
// 既是所有文件描述符最大值+1,在windows中这个参数可以写0
int select(
int nfds,
fd_set FAR * readfds,
fd_set FAR * writefds,
fd_set FAR * exceptfds,
const struct timewal FAR * timeout
);
typedef struct fd_set {
u_int fd_count; /* how many are SET? */
SOCKET fd_array[FD_SETSIZE]; /* an array of SOCKETs */
} fd_set;