WSARecv一次可以接收的最大字节数是多少
What is the maximum number of bytes WSARecv can receive at one time?
我使用std::vector来表示每个IO数据结构中的缓冲区:
struct PerIoData
{
WSAOVERLAPPED m_overlapped;
SOCKET m_socket;
WSABUF m_wsaBuf;
std::vector<BYTE> m_vecBuffer;
DWORD m_dwFlags;
DWORD m_dwNumberOfBytesSent;
DWORD m_dwNumberOfBytesToSend;
eOperationType m_operationType;
};
...
...
if (WSARecv(pPerIoData->m_socket, &(pPerIoData->m_wsaBuf), 1, &dwNumberOfBytesReceived, &(pPerIoData->m_dwFlags), &(pPerIoData->m_overlapped), NULL) == 0)
continue;
我想指定最大大小,并在调用WSARecv()后对m_vecBuffer执行"收缩以适应"。
我看了一下这个页面,但找不到我要找的信息。
WSARecv()
的WSABUF
结构指定指向WSARecv()
将字节读取到的缓冲区的指针,以及可以读取到该缓冲区的最大字节数。当WSARecv()
完成其工作时,它会报告实际读取到缓冲区中的字节数。如果使用vector
作为缓冲区,则必须将向量预先分配到所需的最大大小,然后将WSABUF::buf
设置为指向向量的内部内存,将WSABUF::len
设置为向量的分配大小,然后调整向量大小为WSARecv()
报告的新值。
相关文章:
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 基于字节数组生成静态范围整数值
- 将字节数组转换为带有字节序问题的指针
- 使用 stbi_write_png,如何将 0 和 1 的矩形字节数组转换为单色 png 文件?
- 字节数组初始化会导致 DirectX 崩溃
- 使用 swig 追加到字节数组
- C++ 替换字节数组中项的顺序
- QDataStream 读取和写入的字节数比 QFile::length() 报告要多
- 如何从保存在 Java 中C++的字节数组中读取数字?
- 如何在C++(Arduino)中将浮点数组转换为字节数组
- 将字节数组转换为多维数组
- 为什么 sizeof 在 C++ 中给出不正确的字节数?
- 如何将带有空字符的字节数组馈送到 std::iostream 中?
- C++字节数组到整数
- 将字符串转换为无符号字符数组/字节数组
- 用于 progmem 的C++和头文件压缩的 Web 文件字节数组
- mmap 中的长度是字节数还是页数?
- 如果我向一个12字节的缓冲区写入的字节数少于12,会发生什么情况
- 从 UTF-8 字节数组创建字符串?
- WSARecv一次可以接收的最大字节数是多少