我对C语言中的套接字库有一些疑问。这是我在问题中将参考的一小段代码。
char recv_buffer[3000];
recv(socket, recv_buffer, 3000, 0);
- 我如何确定要使recv_buffer多大?我正在使用3000,但是它是任意的。
- 如果
recv()
收到比我的缓冲区大的数据包怎么办? - 我怎么知道我是否收到了整个消息而又没有再次调用recv,并且在什么都没收到的情况下让它永远等待?
- 有没有一种方法可以使缓冲区没有固定的空间,这样我就可以继续添加缓冲区而不必担心空间不足?也许
strcat
用于连接recv()
对缓冲区的最新响应?
我知道很多问题合而为一,但是我将不胜感激。