对于 tcp 连接,在 Solaris 10 中有什么方法可以在没有其他数据(只有 ack 数据包)的情况下向另一端发送 ACK 数据包。
我知道我们可以通过 TCP Keep alive 选项来做到这一点,但它在 Solaris 10 中受支持。
最佳答案
检测断开连接的可靠方法是在您的应用程序级协议(protocol)中构建一个 null/ping/echo 类型的消息,并让您的应用程序定期发送这些消息。如果它没有得到及时的答复,它可以假设连接已经断开。大多数旨在涉及长期连接的协议(protocol)都包含这样的消息(例如,IRC、IMAP 和 SSH 都包含)。
(毕竟,即使您可以发送纯 TCP ACK 消息,另一端也不必响应它们,因为它自己没有收到更多数据来 ACK)。
关于sockets - Solaris10中如何发送ACK包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4300233/