正如标题所说,在面向连接的套接字上一次可以写入的字节数是否有限制?
如果我想发送一个缓冲区,例如1024字节,我可以使用a
write(tcp_socket, buffer, 1024);
Run Code Online (Sandbox Code Playgroud)
或者我应该write()为每个使用较少字节数的多个调用?
如果我有一个TCP连接,在200字节/秒的数据传送,但我只read()/ recv()从插座每秒一次,其中是那些200 KB的数据存储在同时?
据我所知,数据在ack被发送到发送者之后会离开TCP套接字的读缓冲区,而且它仍然太小而无法容纳200KB的数据,它在哪里等待,直到它可以read()/ recv()由我的客户端?
谢谢!!
以下答案声称数据在被识别后立即离开TCP读缓冲区,然后再读取()/ recv()d:
"接收器的套接字接收缓冲区的大小决定了在没有确认的情况下可以传输多少数据"
可能是我的假设是错误的,只有在用户空间程序读取()/ recv()d之后数据才会被确认?