gpt4 book ai didi

c++ - 编写 C++ SOAP(多线程)客户端应用程序 - 不使用 gSOAP

转载 作者:IT王子 更新时间:2023-10-29 01:22:59 24 4
gpt4 key购买 nike

我正在编写一个多线程 C++ (Linux) SOAP 客户端来与 Betfair API 交互。我最初试图掌握 gSOAP,但我无法使用多个 WSDL 文件使其正常工作,因此我暂时放弃了它。我已经使用 RapidXML 实现了我自己的用于存储数据和解析/生成 XML 的类——我正在寻找建议的唯一一件事是在 HTTPS 传输方面使用什么。我已经使用 OpenSSL 和 libcurl 实现了一些初始测试应用程序,这些应用程序工作正常,但我在多线程方面遇到了一些问题,它们比 C++ 更多的是 C,老实说,我正在寻找更新的东西。所以我的问题是——如果我要从头开始重写它,什么是处理 HTTPS 传输的最佳工具。我研究了以下可能性

  1. OpenSSL(已实现)
  2. libcurl(已实现)
  3. boost::asio 库(尚未尝试,因为我还没有涉足 Boost)
  4. 尽量自己使用套接字编程(不喜欢这种方法)
  5. 只需尝试并加强 gSOAP 并在网络上搜索让它发挥作用的方法。
  6. 完全不同的东西,我还没有遇到过。

所以基本上,鉴于上述情况,有人会建议在稳定的性能和最小的多线程问题方面最好的使用方法是什么?或者有没有人有过上述任何一项表现不佳的经验,并会劝阻我不要使用它???我们将不胜感激地收到任何建议和意见。

最佳答案

如果您担心性能,根据我的经验,boost::asio 往往可以很好地扩展,尤其是在大型多线程项目中。但是请注意,boost::asio 是一个非常低级的面向套接字的库,因此您必须深入研究它;有一些使用 boost::asio 的 HTTPS 的很好的例子,例如this .我会拒绝你自己动手做套接字的想法,因为这正是 boost::asio 提供的。

我个人还没有使用过 libcurl,但是 OpenSSL 提供了相当高级的 API,应该涵盖您需要的一切;不过,您会以性能为代价购买便利。在大多数情况下,性能不足是微不足道的,因此可以忽略不计,但这取决于您的应用。

gSOAP 非常适合客户端 SOAP 请求,但老实说,服务器端支持相当少,您必须进行大量调整才能在多线程应用程序中支持多个 WSDL 文件。我个人也会投票反对这样做。

总而言之,如果您想最大化性能并且对套接字感到满意,我会使用 boost::asio,如果方便和快速开发具有更高的优先级,我会使用 OpenSSL。

关于c++ - 编写 C++ SOAP(多线程)客户端应用程序 - 不使用 gSOAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11126459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com