【问题标题】:xml data over network tcp . please help通过网络 tcp 的 xml 数据。请帮忙
【发布时间】:2010-08-08 15:33:36
【问题描述】:

我有设备。每个都在随​​机时间内通过特定端口向(服务器 IP 地址)发送数据。因为它是一个警报装置,并且有可能不止一个装置同时触发。 数据为 XML 格式。

现在我已经有了一个小的 Windows 应用程序来监听数据但是我遇到了一些问题

  1. 问题是应用程序正在嗅探数据包。意味着我可以在 TCP 数据包中获取数据......这意味着我将在数据包中划分 XML 而不是按顺序(按时间排序)......这使得读取 XML 数据变得如此困难或只需安排它并从中读取。我需要读取来自设备的数据并将其保存为 XML 格式。即使我正在收听一台设备,数据包也不会按顺序发送

任何想法如何做到这一点。我在这里看到了一些其他问题,我尝试了所有这些答案,但没有谈论读取 XML 文件。我使用与本文相同的代码

http://www.codeproject.com/KB/IP/CSNetworkSniffer.aspx

【问题讨论】:

  • 你绝对需要使用低级 tcp 套接字吗?只要满足您的要求,使用 WCF 服务似乎会更容易。
  • 如果您使用 TCP,那么每个连接的数据应该按顺序到达。确保您为每台设备使用单独的连接,并分别存储每台设备的数据。
  • 从上面没有任何工作..我尝试了很多方法让它工作但没有任何工作。数据完全不按顺序排列
  • 为什么要使用嗅探器来接收 XML 数据?为什么不自己监听 TCP 端口?

标签: c# xml network-programming packets


【解决方案1】:

您正在嗅探通过网络驱动程序的 RAW 数据包。在这个低级别,您可以通过分析数据包并使用 TCP seq、ack/nak 消息等内容来处理和重建消息。

这是关于 TCP 协议的维基百科文章,它可能会帮助您在深入研究更深层次的方面之前开始。 http://en.wikipedia.org/wiki/Transmission_Control_Protocol

当然还有最关键的来源 RFC。 https://www.rfc-editor.org/rfc/rfc793

我假设您正在嗅探数据,因为您有一些其他应用程序实际上充当服务器并侦听数据。如果现在您真的应该编写一个侦听 TCP 端口并从那里读取数据的应用程序。这样,TCP 协议将确保您以正确的顺序接收所有数据等。要开始使用,您可以使用 TcpListener 类,或者使用较低级别的 Socket

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多