C - 通过TCP发送缓冲区的正确大小

时间:2013-02-26 15:36:00

标签: c sockets tcp buffer

我正在编写一个C客户端 - 服务器应用程序。

双方交换char缓冲区以进行通信。

这些缓冲区的大小是多少?
在面向流的套接字上是否存在read()(或write())可读(或可写)的字节限制?

2 个答案:

答案 0 :(得分:2)

如果正确编写代码,只要保持连接就没有限制。这就是流连接的含义。

请记住,write()read()可以在写入/读取您提供/要求的所有数据之前返回。在这种情况下,返回值会告诉您写入/读取了多少,并且您有责任再次调用该函数来进行写入/读取。

答案 1 :(得分:2)

这取决于您的目标是高吞吐量还是低延迟。用于高吞吐量的大缓冲区和用于低延迟的小缓冲区。另请注意,当发送具有x字节的缓冲区时,读写函数不保证发送所有x字节。确保检查返回值以查看发送/接收的字节数继续发送/接收其余字节(这通常使用while循环完成,直到您发送/接收整个缓冲区大小x)。

相关问题