2014-04-25 50 views
0

我嘗試從android連接到c# - 服務器。我的電腦ip地址是:「10.100.102.7」; 我測試了Android客戶端和服務器應用程序和他們的工作好,問題開始當我嘗試從機器人連接到C# - 服務器套接字 - Android客戶端到C#服務器連接

C#:

IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse("10.100.102.7"), 6000);/ 
listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
listener.Bind(localEndPoint); 
listener.Listen(100); 
Receiver = listener.Accept(); 

的Java:

private Socket Sender_Socket; 

private static final int SERVERPORT = 6000; 

private static final String SERVER_IP = "10.100.102.7"; 

class Connect_To_Server implements Runnable 
{ 
    @Override 
    public void run() 
    { 
    try 
    { 
     InetAddress serverAddr = InetAddress.getByName(SERVER_IP); 
     Sender_Socket = new Socket(serverAddr, SERVERPORT); 
    } 
    catch (UnknownHostException e1) 
    { 
     e1.printStackTrace(); 
    } 
    catch (IOException e1) 
    { 
     e1.printStackTrace(); 
    } 
    } 
} 

在C# - 停止在「Receiver = listener.Accept();」 在java(android)中 - 停止在「Sender_Socket = new Socket(serverAddr,SERVERPORT);」 它應該是在Java套接字功能的問題 - 需要另一個連接到C#服務器的功能。

回答

0

我關掉防火牆,現在他們可以進行連接;

1

您需要實際發送一些東西,您在Java類中完成的所有操作都會檢索到InetAddress並打開一個套接字?

實際上你需要做一些像發送一個數據包...

開始通過閱讀: http://examples.javacodegeeks.com/android/core/socket-core/android-socket-example/

http://developer.android.com/reference/java/net/Socket.html

然後通過一些實例,你的工作方式

此外,你應該確保你添加另一個(這次是通用的)錯誤捕獲器,因爲你處理的這些異常並不是在玩wi時可能發生的唯一兩個th插座/連接。

+0

它不工作,我只需要關閉防火牆。 – anri97

0
byte[] byData = System.Text.Encoding.ASCII.GetBytes("Connected"); 
listener.Send(byData); 
waitForData(listener); 


void waitForData(SocketState state) 
    { 
     try 
     { 
      state.Socket.BeginReceive(state.DataBuffer, 0, state.DataBuffer.Length, SocketFlags.None, new AsyncCallback(readDataCallback), state); 
     } 
     catch (SocketException se) 
     { 
      //Socket has been closed 
      //Close/dispose of socket 
     } 
    } 

    public void readDataCallback(IAsyncResult ar) 
    { 
     SocketState state = (SocketState)ar.AsyncState; 
     try 
     { 
      // Read data from the client socket. 
      int iRx = state.Socket.EndReceive(ar); 

      //Handle Data.... 

      waitForData(state); 
     } 
     catch (ObjectDisposedException) 
     { 
      //Socket has been closed 
      //Close/dispose of socket 
     } 
     catch (SocketException se) 
     { 
      //Socket exception 
      //Close/dispose of socket 
     } 
    } 

上午在C#中良才