在没有 keep-alive 选项的 TCP 连接上,如果我物理断开线路 - 所以没有 FIN/ACK 可能性,这个套接字是否会愉快地接受我所有的应用程序数据,将其放入发送缓冲区并尝试永远发送它?
如果没有,它何时以及如何终止 = 哪些错误将返回到我发送小块数据的应用程序?我们谈论 Linux 和 c。
谢谢
最佳答案
如果套接字正在发送,(1) 最终发送缓冲区将填满,因此下一个发送调用将阻塞,并且 (2) 最终 TCP 将由于未收到 ACKS 并重置连接而导致发送尝试超时,并将错误传递给下一个发送调用。
关于c - 没有keepalive的物理断开的tcp套接字的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18171448/