2008-12-10 82 views

回答

5

有第三方庫/工具/產品,揭露您感興趣的流量。

這是一個我用於串行端口仿真 - 但我認爲它提供的東西,你可以使用: http://com0com.sourceforge.net/

2

有可能從串口監聽通信

然而,有似乎沒有成爲

通過的Sysinternals使用的有效技術,提出there

這似乎依賴於「COMPortSniffer」控制在Win32編程,但我不認爲這樣的事情是可以直接與C#

2

如果你有過那跟你說話通訊端口的第一個程序的控制,爲什麼不改變程序通過遠程或任何其他類型的IPC將從端口收到的數據傳遞給您的第二個程序。如果你能寫一個連接到COMM端口的代理程序,並且讓另外兩個程序與這個代理進行通信來完成通信,那更好。

另一個想法是,如果你需要嗅探只輸入數據,就可以得到一個Y型電纜(分路器),並連接到2 COMM端口,每個程序連接到每個COMM端口。但是你需要確保第二個程序沒有嘗試傳輸。在某些情況下,您可能需要一個分離器,它僅連接第二個輸出的RX引腳。讓我知道你是否需要這張圖。

如果您沒有2 COMM,您可以輕鬆獲得USB-串行轉換器,價格低於USD10。

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)); 
} 
+0

在這種情況下,你必須瞭解第一級消費者的源代碼控制公佈讀取數據。它不嗅探已建立的串行通信。 – sahl04 2017-07-20 22:54:42

相關問題