有什么方法可以将数据包排队到 Python 中的套接字?我一直在寻找类似libipq
图书馆的东西,但找不到任何同等的东西。
这是我要完成的工作:
- 在服务器和客户端(都在我的控制之下)之间创建 tcp 套接字连接。
- 尝试传输数据(等待连接到故障——例如客户端由于关闭笔记本电脑而失去连接)
- 捕获
SocketException
并保留试图发送的数据,同时保持剩余数据等待(在队列中?) - 进入循环尝试重新连接(假设成功是不可避免的)
- 成功后创建新套接字
- 恢复数据传输
有什么建议么?Twisted 可以做到这一点吗?我需要参与pcapy
吗?我应该在 C 中执行此操作(套接字、队列等)并使用 Boost 来制作混合代码吗?
提前致谢。
编辑1:
对尼克的回应:
我忽略了我将要传输的数据将是泛化且无止境的这一事实——想想这个应用程序位于 ssh 会话下(我不会以任何方式试图窥探数据包)。因此,传输将是双边的。我希望能够从办公室到我家(在两者之间关闭我的笔记本电脑),在家中打开笔记本电脑并无缝地继续我的会话。(我知道屏幕存在)。这可能会让你想知道没有代理它是如何工作的。它不会,我只是没有解释那个设计。块引用
有了添加的上下文,我还应该说我不必SocketException
在服务器端捕获 a ,因为该机器将(或假设是)固定的。当客户端发现它再次连接时,它将重新连接到服务器。