我现在正在使用套接字在各种进程之间进行通信。 一切都在同一台机器上运行,所以没有数据包丢失,我也没有读取超时等。消息通常是小数据块(JSON,有时是二进制)。现在我想做跨机器通信。 客户端/服务器连接通常如下所示:客户端告诉服务器开始某些处理(传递任务描述),服务器完成工作并回传进度,客户端可以选择在中间发送终止消息。 完成后,服务器将在客户端完全断开连接时保持监听(即会话结束,启动新任务会启动新会话。)
我该如何实施沟通? 我可以轻松地继续在网络上使用套接字,但我的理解是,我现在需要添加大量的error handling来识别消息何时无法通过并以某种方式将其传达回服务器。 我想要的只是send(message, target)
并确保完整的消息被传输; 当对方死了时加上一些通知。 我已经看到有一些像zero-mq这样的库声称可以做到这一点但也有更多,我不确定这样的消息库是否真的是必要的。 有一些易于使用的库可以做一些基本的沟通吗?
我正在使用C ++和Python,而且BSD样式许可证绝对是库的首选。 图书馆也应该相当稳定,因为沟通部分并不是真正重要的,我希望能够坚持一个解决方案。
TCP保证所有pagack都传递到目的地[如果没有,它会为你重新发送]。 所以,如果你使用它 – 它可能需要更多的时间[与单机相比],但msg传输的正确性仍然存在。
你应该看看ZeroMQ 。 它具有比纯BSD插槽更简单的接口,更便携,并具有出色的文档。
检查networkComms.net的开源网络通信库。
听起来你需要一个消息队列。
有很多很多解决方案,其中只有一个是redis: http: //redis.io
以上就是c/c++开发分享如何做简单,可靠的网络短信?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/518936.html