如何在c ++中创建二进制持久连接?

时间:2011-11-12 15:45:41

标签: c++ networking connection

我想在c ++中的两个应用程序之间创建持久的TCP连接。我正在寻找跨平台解决方案linux,windows。我听说过有关XMPP的内容,但似乎是使用XML进行数据封装,但我希望以二进制形式传输数据,如果可能的话,就像iostream一样。

如何在c ++中创建该连接?

2 个答案:

答案 0 :(得分:4)

beej:如果您想在没有库的情况下进行套接字,请使用套接字上的网站。获得跨平台套接字代码并不难。 Winsock基于BSD套接字。网站列出差异。

asio:很棒的文档。体面的例子。

ACE:关于这一本的几本书。几年前我看起来很复杂,所以我个人从不打扰它。虽然很受欢迎。

添加原因(我的意见)使用asio而不是ACE。 ACE已经时间。这对它的稳定性非常有益,并且已经证明了它的性能。但它是在C ++是一种与现在完全不同的语言时开发的。 asio更现代。如果您没有使用ACE的背景,则更容易使用。

答案 1 :(得分:1)

我还要提到Qt很好networking primitives,因为它是跨平台的,非常适合使用。如果我们假设您想使用TCP,那么您将创建一个QTcpServer的实例,开始监听并接受传入的QTcpSocket连接。在这些上,您可以根据需要编写二进制数据(因为它继承自QIODevice),但您也可以使用QDataStream实现的序列化。