【问题标题】:Read an XML Data from TCP Port Socket从 TCP 端口套接字读取 XML 数据
【发布时间】:2011-02-26 18:40:08
【问题描述】:

我有一个通过特定端口向我发送数据的设备。数据为 XML 格式。

现在我已经做了一个小型控制台应用程序,它监听数据并在屏幕上打印出数据。

现在我的计划是反序列化 xml 数据,或者我将在数据库中创建插入语句。

1) 设备每秒向我发送数据(如果有数据要发送给我)。 2) 我不能说设备要向我发送多少数据。

如何确保在不丢失任何信息的情况下捕获所有数据..

准备好讨论了吗?

C# 或 VB.NET 中的代码

【问题讨论】:

  • TCP 是为防止数据丢失而设计的。你需要解释为什么你认为它对你不起作用。一秒钟大约是 20 亿个 CPU 周期。

标签: c# xml vb.net sockets tcp


【解决方案1】:

正如 Hans Passant 所指出的,TCP 旨在实现准确交付。要接收连接期间发送的所有 tcp 数据(听起来像您的情况),请使用我在C# performance methods of receiving data from a socket? 的答案中的代码。

收到所有字节后,您可以进行典型的文本转换,例如string stringData = Encoding.UTF8.GetString(bytes);

【讨论】:

    【解决方案2】:

    对于每个 XML 文档,您需要不断地从套接字流中读取,直到找到匹配的根端元素;

    <?xml version='1.0' encoding='utf-8'?><rootElement> ... </rootElement>
    

    完成,等待下一个文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-02
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-02
      • 2016-08-10
      相关资源
      最近更新 更多