2015-10-19 27 views
1

我在Java中實現套接字偵聽器應用程序,工作和正常工作listener.AcceptTcpClient()不會在C#中工作,並在Java中

C#代碼:

 IPAddress serverAddress = IPAddress.Parse("127.0.0.1"); 
     TcpListener listener = new TcpListener(serverAddress, 1234); 
     listener.Start(); 

     while (true) 
     { 
      TcpClient client = listener.AcceptTcpClient(); 

      NetworkStream stream = client.GetStream(); 
      byte[] data = new byte[client.ReceiveBufferSize]; 
      int bytesRead = stream.Read(data, 0, Convert.ToInt32(client.ReceiveBufferSize)); 
      string request = Encoding.ASCII.GetString(data, 0, bytesRead); 
      Console.WriteLine(request); 
     } 

白色它工作正常Java:

ServerSocket server = new ServerSocket(1234); 
Socket socket = server.accept(); 

在java中,一個新的客戶端連接開始,我設法讀取數據。而在C#中它根本沒有創建任何TcpClient。

請幫忙!

+0

你的客戶端代碼看起來像什麼連接到這臺服務器? – Lorek

+0

@Lorek它是一個GPRS設備 – kdureidy

+0

嘗試使用IPAddress.Any而不是127.0.0.1。 – Lorek

回答

1

嘗試用這個替換您TcpLister初始化:

TcpListener listener = new TcpListener(IPAddress.Any, 1234); 

當您使用「127.0.0.1」你要綁定的服務器套接字回送地址。只有同一臺計算機上的客戶端才能夠與使用環回IP的服務器進行通信。