2013-11-21 57 views
2

設備每秒發送一次事件,從192.168.101.4到192.168.101.2:4002。 我需要傾聽和解析這些事件,但我已經與聽力部分失敗。聽win中的tcp事件CE

有人請解釋一下,如何做到這一點與緊湊框架的有限選項?

+0

你能告訴我們你已經嘗試了什麼? – ctacke

+0

我成功地使用了連接套接字和函數「socket.receive()」,但只是在發送包之後才成功。 –

+1

您可以顯示您正在使用的代碼的最小示例,並指出它失敗的位置以及您遇到的錯誤?在不知道你的具體問題的情況下,我所能做的就是向你提供一個通用套接字教程:http://www.codeproject.com/Articles/10649/An-Introduction-to-Socket-Programming-in-NET-using – PaulH

回答

2

我自己解決了這個問題,但是感謝PaulH提供的幫助教程。

對於同樣的問題程序員:

/// <param name="port">Port to use</param> 
    /// <param name="size">count of bytes to return</param> 
    /// <returns>a byteArray with received data</returns> 
    public static byte[] readEvent(int port, int size) 
    { 
     byte[] bytes = new byte[size]; 
     IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); 
     IPAddress ipAddress = ipHostInfo.AddressList[1]; 
     TcpListener listener; 
     try 
     { 
      listener = new TcpListener(ipAddress, port); 
      listener.Start(); 
      TcpClient tcpClient = listener.AcceptTcpClient(); 
      NetworkStream stream = tcpClient.GetStream(); 
      stream.Read(bytes, 0, bytes.Length); 
      listener.Stop(); 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine(e.Message); 
     } 
     return bytes; 
    }