我正在使用一个与我的COMM端口对话的程序,但我已经制作了另一个程序,我想“嗅探”通讯端口消息,并对这些消息执行自己的操作。这可能在.NET c#?
中答案 0 :(得分:5)
有第三方图书馆/工具/产品可以揭示您感兴趣的流量。
这是我用于串口仿真的一个 - 但我认为它提供了一些你可以使用的东西: http://com0com.sourceforge.net/
答案 1 :(得分:3)
如果您可以控制与您的COMM端口对话的第一个程序,为什么不更改程序以通过远程处理或任何其他类型的IPC将从端口接收的数据传递到您的第二个程序。如果你能编写一个连接到COMM端口的代理程序,并让其他2个程序与该代理通信以完成通信,那就更好了。
另一个想法是,如果您只需要嗅探传入的数据,您可以获得Y-cable(分离器)并连接到2个COMM端口,每个程序连接到每个COMM端口。但是你需要确保第二个程序没有尝试传输。在某些情况下,您可能需要一个仅为第二个输出连接RX引脚的分离器。如果您需要图表,请告诉我。
如果您没有2个COMM,您可以轻松获得低于10美元的USB串行转换器。
答案 2 :(得分:2)
答案 3 :(得分:0)
代码项目(http://www.codeproject.com/Articles/75770/Basic-serial-port-listening-application),它有一个很好的教程。
它显示了如何读取来自串口的数据,从中你应该能够读取数据。
一个简短的片段:
void _serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int dataLength = _serialPort.BytesToRead;
byte[] data = new byte[dataLength];
int nbrDataRead = _serialPort.Read(data, 0, dataLength);
if (nbrDataRead == 0)
return;
// Send data to whom ever interested
if (NewSerialDataRecieved != null)
NewSerialDataRecieved(this, new SerialDataEventArgs(data));
}