TCP接收通用模式

问题描述

Tcp接收通常调用 recieve/read 接口 来接收发送过来的字符串,假设发送带宽不足,致使该数据包不能经过 recieve/read 接口 一次读取spa

通用思路

给数据包作一个简单的封装,数据包开头的四个字节用来存放一个 unsigned int 用来描述数据包整个长度,之因此用 32位的来描述是由于,Linux系统Tcp接收最大缓冲区通常为 8M 即 23位,因此能够采用 unsigned int来描述。接口

每次读取的时候,先判断缓冲区是否等于或者多余 4 个字节内容,若是为真,则为此时要接收数据包的长度。而后阻塞循环调用 recieve/read 接口,直至能够读满完整的一个数据包长度ci

相关文章
相关标签/搜索