如何使用HTTP在C#中控制设备的嵌入式控制软件?

时间:2010-09-16 15:01:04

标签: c# http packet-capture embedded-control

我有一个带有嵌入式用户控件的硬件,可以通过在Web浏览器中输入设备的IP地址来访问。该设备通过x-over以太网电缆和静态IP直接连接到我的PC。我需要将设备的控制集成到我的C#应用​​程序中。

我的想法是使用数据包嗅探器来监控我的PC和设备之间的流量,同时在我的网络浏览器中使用设备的控件。然后找出我的PC发送的数据包与我当时正在使用的控件相对应。然后我可以在我的C#应用​​程序中创建一类HTTP或TCP数据包,并使用Socket类将它们发送到设备。

但是,我对网络协议没有太多的了解,所以当我使用Wireshark来监控我的PC和设备之间的流量时,我不知道在找出哪些数据包做什么时甚至可以从哪里开始。有没有人有任何想法?我对任何事都持开放态度。谢谢!

编辑: 很难准确解释我的设备是什么,但它基本上是一个精心设计的传感器,通常用于工业应用,因此它可能使用Modbus,我对它很熟悉。你知道如何通过检查数据包来判断使用哪种协议吗?我注意到(使用Wireshark)从我的PC发送到设备的数据包以1个HTTP数据包的模式发生,然后是5个TCP数据包,并且只要在我的浏览器中打开控件就重复相同的序列。是否有任何资源可以让我更好地了解正在发生的事情?

2 个答案:

答案 0 :(得分:3)

如果这是浏览器控制的,我首先考虑的是检查设备发送到浏览器的网页,看看操作控件时浏览器的指示 - 这似乎比使用Wireshark更容易。

是否有一些我不知道的事情使得这一切变得不可能(例如基于闪存的控制系统)?如果只是使用HTML或Javascript,HTML POST消息或像Ajax那样更复杂的东西,那么构建界面应该相对容易。

答案 1 :(得分:2)

根据设备的不同,它将使用modbus协议的变体(http://en.wikipedia.org/wiki/Modbus)或其他模糊不清的东西。

最好的办法是不断向设备发送相同的命令,直到您能够识别数据包中的相似之处。

如果它是支持性的,它可能会像命令/数据对或可能是XML blob一样简单。如果你真的不走运,它会被压缩或编码,但除非你是黑客攻击游戏或自动取款机,否则不太可能。

询问设备制造商是否可以提供规格通常也可以。