我一直在使用UDP。但现在轮到我使用TCP了。我想在Java和C应用程序中使用TCP套接字,用于MAC,Linux和Windows 7操作系统。
在使用UDP时,为了知道连接断开,我正在跟踪简单的最后一个数据包接收时间。如果假设节点A在5秒内没有从节点B收到任何UDP数据包,我正在考虑断开连接。当没有数据要从A发送到B或从B发送到A时,A和B都会每秒向对方发送一个小的保活包(没有数据)。这可以防止在不发送任何数据时将连接视为损坏。
所以,我想知道TCP中断连接的检测是如何工作的。基本上我想知道连接是否在读取或写入套接字时断开,并且仅在5秒内。
我知道读/写将在Java中抛出IOException或在C中返回-1/0,但TCP需要多长时间才能将连接视为在每个平台中断开。如何更改连接到期超时值?