如何做简单,可靠的网络短信?

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

我该如何实施沟通? 我可以轻松地继续在网络上使用套接字,但我的理解是,我现在需要添加大量的error handling来识别消息何时无法通过并以某种方式将其传达回服务器。 我想要的只是send(message, target)并确保完整的消息被传输; 当对方死了时加上一些通知。 我已经看到有一些像zero-mq这样的库声称可以做到这一点但也有更多,我不确定这样的消息库是否真的是必要的。 有一些易于使用的库可以做一些基本的沟通吗?

我正在使用C ++和Python,而且BSD样式许可证绝对是库的首选。 图书馆也应该相当稳定,因为沟通部分并不是真正重要的,我希望能够坚持一个解决方案。

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

你应该看看ZeroMQ 。 它具有比纯BSD插槽更简单的接口,更便携,并具有出色的文档。

检查networkComms.net的开源网络通信库。

听起来你需要一个消息队列。

有很多很多解决方案,其中只有一个是redis: http: //redis.io