0

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

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

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

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

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

4

1 回答 1

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

于 2010-08-08T07:25:38.970 回答