Web Services 在C/C++上传输数据的最佳(最简单)方法是什么[已关闭]

izkcnapc  于 2022-11-15  发布在  C/C++
关注(0)|答案(4)|浏览(155)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新问题,以便editing this post可以用事实与引用来回答.

四个月前关门了。
Improve this question
目前我正在开发一个C/C++跨平台客户端/服务器软件。在底层套接字开发方面,我是一个非常有经验的开发人员。Berkley sockets/Winsock的问题是,你总是需要做一些解析器来让接收端的东西正确。我的意思是,你必须解释数据,并连接数据包以便正确传输。(数据包经常被切片)
请记住,通信将是双向的。纯套接字是目前传输数据的最佳方式吗?您会推荐SOAP、Web服务或其他类型的封装应用程序吗?

yzckvree

yzckvree2#

现在很多人使用Web服务和SOAP。有一些C++软件包可用于此目的。这些软件包将为您使用套接字并处理所有的数据纠纷。如果您使用的是Unix/Linux系统,请使用System V.4网络句柄,您的数据最终将通过套接字传输。
在Windows上,如果您只想与其他Windows框对话,还有其他选择。
您也可以研究一下CORBA,但这不是常见的做法。

d8tt03nd

d8tt03nd3#

在任何数据传输中,都需要对对象进行序列化和反序列化。
第一个问题是,你需要二进制还是文本格式的数据传输。二进制数据格式有一个明显的优势,那就是它们非常容易解析(假设它们是简单的POD结构--你可以直接将它们转换成一个struct)。
基于文本的传输应该更容易调试,因为你可以只读文本。你仍然需要解析它们。
基于SOAP的Web服务是简单的基于XML的数据包,通常通过HTTP发送。必须有一些东西来解析HTTP和XML。易用性不是固有的,而是依赖于你所使用的工具。如果你有好的工具,当然可以,但同样适用于任何形式的数据交换。
你可以看一下Boost Serialization Library,它是一个相当复杂的库,需要你写代码来指示哪些成员需要序列化,它对文本(包括xml)和二进制序列化都有很好的支持,它也是跨平台的。

mitkmikd

mitkmikd4#

我已经成功地使用了ZMQ。我强烈推荐它,因为它是一个处理套接字相关开销的中级库。它还支持二进制包/消息。

相关问题