我有一个 c++ 应用程序,它使用 TCP 套接字将文件从一个处理器传输到另一个处理器。应用程序将在不可靠的网络上运行,因此在连接丢失和重新恢复时继续传输非常重要。我正在使用 ACE 来允许应用程序在 Windows 或 Linux 上运行。
目前,当我开始传输并断开两个处理器之间的网络连接时,如果我在不到 20 秒的时间内重新连接它,传输就会恢复并且一切正常。如果在 20 秒内没有重新建立连接,我会收到 Windows 错误 10054,表明连接已被重置。那时,套接字消失了,一旦重新建立连接,传输将不会恢复。有没有办法覆盖它,以便我控制连接何时超时?
编辑:这似乎是一个 Windows 问题。我尝试将文件从 Linux VM 发送到 Windows 机器。我在传输过程中断开了网络电缆超过 5 分钟。当我重新连接它时,传输在它停止的地方继续并完成。