如何进行简单可靠的网络信息传递?

2024-04-23 19:58:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在正在使用套接字在不同进程之间进行通信。所有的东西都在同一台机器上运行,所以没有数据包丢失,也没有读取超时等。消息通常是小数据块(JSON,有时是二进制数据)。现在我想进行跨机器通信。客户机/服务器连接通常是这样的:客户机告诉服务器开始一些处理(传递任务描述),服务器执行工作并将进度反馈给客户机,客户机可以选择在中间发送终止消息。一旦完成,服务器将在客户端完全断开连接时保持侦听(即会话结束,启动新任务将启动新会话)

我应该如何实施沟通?我可以很容易地继续在网络上使用套接字,但我的理解是,我现在需要添加大量的错误处理来识别消息何时无法通过,并以某种方式将其通信回服务器。我只需要send(message, target)并确保完整的消息得到传输;另外一方死机时还需要一些通知。我已经看到有一些库,比如zeromq,声称可以做到这一点,但也有很多,我不确定这样的消息传递库是否真的有必要。有没有一些易于使用的图书馆来做一些基本的交流?在

我使用C++和Python,BSD风格的许可证绝对是图书馆的首选。库也应该是相当稳定的,因为通信部分并不是非常关键的,我希望能够坚持一个解决方案。在


Tags: 数据网络服务器机器sendjson消息客户端
3条回答

你应该去看看ZeroMQ。它具有比纯BSD套接字更简单的接口,更易于移植,并且具有优秀的文档。在

签出networkComms.net以获取开源网络通信库。在

TCP保证所有页包都传递到目的地[如果没有,它会为您重新发送]。所以,如果你使用它-它可能需要更多的时间(与单机相比),但正确的消息传输仍然存在。在

相关问题 更多 >