1

我有一个持续写入 TCP 套接字的程序。我想确保如果客户端和服务器之间的连接断开任何时间,连接可以重新建立。

现在,我可以断开连线,当 write() 函数循环时,它返回一个“对等连接重置”错误,然后返回 ULLONG_MAX 的值。然后,一旦我重新插入电线, write() 就会不断返回“断管”错误。我试图关闭并重新打开连接,但我继续收到“对等方重置连接”错误。

有谁知道我如何首先重新建立连接或使其保持活动一段时间(或无限期)?

4

2 回答 2

4

你不能在这里重用文件描述符,你必须从头开始——创建新的socket(2)并调用connect(2)它。

于 2012-05-04T14:58:16.727 回答
1

恐怕你必须建立一个新的连接,而且只能由客户端程序发起。您可能需要某种方法来确保重新连接的是同一个客户端,可能会在第一次连接时检查 IP 或交换令牌,因此您可以在连接上进行一些不同类型的启动以进行首次连接和恢复。不过,该解决方案需要对您的帐户进行一些编程。

如果由于某种原因 TCP 不是唯一的选择,您可能需要考虑 UDP 通信,因为决定连接何时丢失的部分由您决定。但是您需要考虑很多其他想法(但由于您的目标是丢失和恢复通信,这可能更符合您的需求)。

于 2012-05-04T14:47:33.763 回答