失败后重新写入套接字

时间:2011-07-15 03:06:54

标签: c windows linux tcp

这是环境:

client -> router -> server
即使连接断开,

客户端也会继续将数据写入服务器。

以下是步骤:

  1. 路由器存在一些问题,因此客户端会收到错误消息。

  2. 路由器已恢复

  3. 客户端可以像以前一样将数据写入服务器。

    PS:这是一个TCP连接。

1 个答案:

答案 0 :(得分:2)

TCP旨在容忍临时故障。内置于TCP中的缓冲,排序,确认,超时和重传机制将处理一些丢弃的数据包。路由恢复时,连接的TCP流的末端只会看到延迟。客户端可能会溢出其套接字发送缓冲区并从发送调用返回错误,这取决于您如何处理(等待,重试,挽救)。

如果您的路由器确实是NAT防火墙,通常是消费级“路由器”,那么这不起作用。

如果服务器软件决定在经过一段时间的不活动后决定关闭您的连接,这也行不通。

我建议花些时间更多地了解TCP/IP,或者购买一个book:)