【发布时间】:2015-03-23 07:10:03
【问题描述】:
我正在寻找一种通过 TCP / IP 网络发送 std::string 的方法。它必须独立于平台。
我看过的方法是:
- C 套接字 - 乱七八糟。
- boost::asio - 太复杂了
- Qt - 要求您继承 QObject 并且仅需要单线程。
最简单但最强大的方法是什么?
还有一些示例代码使用给定的库用于服务器端和客户端函数,连接和传输 std::string 将是惊人的!
【问题讨论】:
-
您可以使用 ZeroMQ 代替 C 套接字。
-
如果你用 QT 填充舒适,你不需要从 QObject 继承你的数据,你也可以简单地用一个互斥锁来保护你的套接字类,并在多线程环境中使用它。我认为您找不到一个库,可以让您在不使用互斥锁或信号量之类的阻塞对象的情况下将数据推送到套接字中......
-
这是一个寻求工具/库推荐的问题,根据帮助中心的意见和辩论与重点答案,该类别为not considered On Topic。根据这一点:@ForceBru ZeroMQ 可能不算“强”,因为相对较弱的保证它只会完全传送或根本不传送消息,因此如果您需要某种传送保证,则需要re-implement TCP with sequence numbers。要知道的事情。
-
@HostileFork 恕我直言,先生,您在原始帖子中添加了许多“未说明”的要求,并假设这些是(否则相当薄弱的)任务定义的一部分.是的,关于什么应该是什么以及什么不需要是 “强” 解决方案的一部分,还有其他意见,但是,有保证的交付不一定是消息传递层的一部分(未定义)应用程序架构。在不间断的业务关键系统设计/实施方面花费了数年时间,您可能会设计一个智能/轻量级消息传递层并临时添加交付控制
-
您可能想阅读 whathaveyoutried.com 并向 StackOverflow 社区表示敬意,该社区强烈鼓励发布高质量的问题以及 MCVE(a Minimum-Complete-Verifiable-Example of code ) 显示到目前为止您已经尝试过的内容。您可能想要更新您的帖子,以达到最低合理的质量水平并表明您尊重其他 StackOverflow 贡献成员的意愿。他们是喜欢回答有关 MCVE 相关问题的好问题的专业人士。 享受成为 StackOverflow 贡献成员并支持此社区网络礼仪
标签: c++ networking