2013-11-17 4 views
1

У меня возникла проблема, когда я пытаюсь подключить свое физическое устройство к моему серверу с помощью сокетов. На стороне сервера он, похоже, не принимает никакого соединения, в то время как на стороне клиента сокет истекает. Есть идеи, почему это происходит?Сбой клиентского сокета при подключении к серверу

Я обеспечиваю мой код ниже кодекса

Сервер:

public void run() 
    { 
     // TODO Auto-generated method stub 
     try{ 
     gamePending = false; 
     pid = 0; 
     while(pid < 2){ 
      System.out.println("Hello from run loop on game"); 
      Socket tempSocket = server.accept(); 
      System.out.println("Client connected at " + tempSocket.getLocalPort()); 
      PrintWriter tempWriter = new PrintWriter(new BufferedWriter (new OutputStreamWriter(tempSocket.getOutputStream())),true); 
      tempWriter.println("" + pid); 

      players[pid] = new Client(tempSocket, pid, this); 
      players[pid].start(); 
      gamePending = true; 
      if(pid == 0){sendMsg(pid, "waiting for other player");} 
      pid++; 
     } 
     } 
     catch(Exception e){ 
      System.out.println("There has been an Error. Game will be Terminated."); 
     } 
     //Start new game for the next two players... 
     new Game(); 
    } 

Client Side:

public void run() { 
    // Connects to the Server.... 
    try { 
     socket = new Socket("192.168.1.116", 9090); 
    } catch (UnknownHostException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    try { 
     in = new BufferedReader (new InputStreamReader(socket.getInputStream())); 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 
    try { 
     out = new PrintWriter(socket.getOutputStream(),true); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

11-16 23: 32: 11,016: W/System.err (24213) : java.net.ConnectException: не удалось подключиться к /192.168.1.116 (порт 9090): соединение не выполнено: ETIMEDOUT (время ожидания подключения) 11-16 23: 32: 11.016: W/System.err (24213): в libcore .io.IoBridge.connect (IoBrid ge.java:114) 11-16 23: 32: 11.016: W/System.err (24213): на java.net.PlainSocketImpl.connect (PlainSocketImpl.java:192) 11-16 23: 32: 11.026: W/System.err (24213): at java.net.PlainSocketImpl.connect (PlainSocketImpl.java:459) 11-16 23: 32: 11.026: W/System.err (24213): на java.net.Socket. connect (Socket.java:842) 11-16 23: 32: 11.026: W/System.err (24213): at vatos.locos.spheroknockout.Connection.run (Connection.java:22) 11-16 23: 32: 11.026: W/System.err (24213): at java.lang.Thread.run (Thread.java:841) 11-16 23: 32: 11.026: W/System.err (24213): причиненный: libcore.io.ErrnoException: сбой подключения: ETIMEDOUT (время ожидания подключения) }

+0

Попробуйте выполнить telnet из клиентского окна на ваш IP-адрес вашего сервера. Соединяет ли он? –

ответ

1

Я не могу быть уверен (потому что он делает n ot появляется в вашем коде), но я думаю, что сервер не работает на одном и том же порту (9090). Это может быть основной проблемой, но сервер или клиент также могут быть заблокированы брандмауэром (даже если они работают на одном компьютере).

+0

Проблема была в брандмауэре спасибо dburner :) –

Смежные вопросы