我对 C 中的套接字库有一些疑问。这是我将在我的问题中引用的代码片段。
char recv_buffer[3000];
recv(socket, recv_buffer, 3000, 0);
- 我如何决定做多大的recv_buffer?我使用的是 3000,但它是任意的。
- 如果
recv()
收到比我的缓冲区大的数据包会发生什么? - 我怎么知道我是否已经收到了整个消息而无需再次调用 recv 并在没有收到任何内容时让它永远等待?
- 有没有办法让缓冲区没有固定数量的空间,这样我就可以继续添加它而不必担心空间不足?也许使用
strcat
连接recv()
到缓冲区的最新响应?
我知道这是一个很多问题,但我将非常感谢任何回应。