C ++非C和通过网络发送std :: string的清晰方式

时间:2015-03-21 12:50:32

标签: c++ networking

我正在寻找一种在TCP / IP网络上发送std :: string的方法。它必须与平台无关。

我看过的方法是:

  • C套接字 - 凌乱。
  • boost :: asio - 太复杂了
  • Qt - 要求您继承QObject,并且只需要单线程。

最简单但最强大的方法是什么?

对于服务器端和客户端函数使用给定库的一些示例代码,用于连接和传输std :: string将是惊人的!

2 个答案:

答案 0 :(得分:1)

你最强的是什么意思?最快的 ?最简单? 服务器(例如字符串的接收者):

  • 应该同步还是异步?
  • 是否必须回答某些问题?

thewsers应该驱动你的选择。

如果您想要一些非常简单的东西,请查找"便携式telnet c ++服务器客户端",您将获得大量的库和代码示例。

但是,要回答你的问题,这里有一些便携式库:

答案 1 :(得分:0)

这个问题有点含糊不清:

a)你通过网络发送“std :: string”是什么意思?你想完全序列化这个对象,发送它并在另一侧反序列化它?或者只是发送实际文本并将其重新构建为std :: string(在我看来更简单和首选)?

b)听起来你的问题确实是“网络中有哪些平台/库?”。

对于a:如果您决定发送文本并将其重新构建为std :: string,那么您没有问题,只需将文本作为C-string发送即可。您可能希望将其包含为XML或JSON等数据格式,以确保文本正确发送。如果你想序列化std :: string,那么就没有干净的方法了。您可能希望将对象重新解释为char数组,以这种方式发送并将其写入某个内存。这不安全或简单。

对于b:那里有很多图书馆。 POCO众所周知,退出确定。 JUCE是一个简单的跨平台现代C ++平台,支持面向对象的Socket类。你可能也想使用它们。