我对 C++ 并没有真正的经验,所以我需要向你寻求帮助。
我需要一个用 C++ 实现的服务器来监听 TCP 端口。在这个端口上,它应该只接收 XML 文档。我找到了几个多线程 TCP 套接字示例,但我不知道如何处理 ReadToEnd 或转换为字符串或 XML 文档。
我正在考虑使用适用于流的CodeSynthesis。但是如何将 TCP 套接字和流结合起来呢?
对不起,如果这听起来像一个菜鸟问题。但我很欣赏任何好的例子或建议。
最后我用
boost lib 提供了一个不错的套接字抽象层和输入/输出流,可用于随后使用 CodeSynthesis 对 XML 文档进行序列化和反序列化。
Tcp 协议本身并没有为您提供区分一条消息与另一条消息的方法。它只保证订单,并且不会有数据无法交付。所以由你来实现 ReadToEnd 函数。例如,您可以发送一些特殊符号(首先确保它没有出现在您的 xmls 中)。或者您可以使用现有的 http 协议通过一个连接发送多个文档。您可以尝试http://libevent.org/ http 服务器实现并将其用于您的需要。更简单的方法是使用现有的 http web 服务器并使用它接收您的文档,在这种情况下,您不需要创建自己的。