socket编程之TCP开发中的PEEK_MSG的使用与见解

概述

使用PEEK_MSG选项调用recv获取socket数据,可以简化socket处理逻辑,减少再次建设缓冲队列的复杂度;但也因此相对增加了系统底层的存储压力。

适用范围

对于一般客户端或者低用户量的服务端开发而言,使用PEEK_MSG先recv了消息,检查消息头,确认当前部分接收的消息已经基本完成了以后,再去调用不带选项的recv函数(注意传入需要去掉的长度)清空系统缓冲区的部分数据,可以一定程度上减轻逻辑复杂度。

不适宜范围

需要accept大量连接,或者需要减轻攻击可能性的服务端。正如上面所言,在减轻应用复杂度的同时,会增加系统的资源压力。

上一篇:day07_08 socket server


下一篇:TCP/IP协议栈在Linux内核中的运行时序分析