android - socket-timeout beim verbinden

Ich versuche, die Implementierung eines tcp-client-app auf Android. Wenn ich versuche eine Verbindung zu meinem C++ - server der socket-Timeout beim Versuch eine Verbindung zum server herstellen.

Mein code:

new Thread(new ClientThread()).start();
try
{
  PrintWriter out = new PrintWriter(new BufferedWriter(
    new OutputStreamWriter(socket.getOutputStream())), true);
  out.println("Test message.");
}
catch (Exception e)
{
  //ERROR1
  e.printStackTrace();
}

...

class ClientThread implements Runnable
{
  @Override
  public void run()
  {
    try
    {
      InetAddress serverAddr = InetAddress.getByName("192.168.1.116");
      socket = new Socket(serverAddr, 9000);
    }
    catch (Exception e)
    {
      //ERROR2
      e.printStackTrace();
    }
  }
}

Erste, der ERROR1 Auftritt (socket null ist), dann die ERROR2 Auftritt (connection time out). Der server ist in Ordnung, ich habe es getestet mit verschiedenen clients. Ich habe "uses-permission" - es sollte also kein problem sein.

BEARBEITEN:
Stapel auf ERROR2:

05-17 02:26:50.789: W/System.err(26625): java.net.ConnectException: failed to connect to /192.168.1.116 (port 9000): connect failed: ETIMEDOUT (Connection timed out)
05-17 02:26:50.789: W/System.err(26625):    at libcore.io.IoBridge.connect(IoBridge.java:114)
05-17 02:26:50.789: W/System.err(26625):    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
05-17 02:26:50.789: W/System.err(26625):    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
05-17 02:26:50.789: W/System.err(26625):    at java.net.Socket.startupSocket(Socket.java:566)
05-17 02:26:50.789: W/System.err(26625):    at java.net.Socket.<init>(Socket.java:225)
05-17 02:26:50.789: W/System.err(26625):    at cz.gclient.gardenclient.MainActivity$ClientThread.run(MainActivity.java:153)
05-17 02:26:50.789: W/System.err(26625):    at java.lang.Thread.run(Thread.java:841)
05-17 02:26:50.789: W/System.err(26625): Caused by: libcore.io.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
05-17 02:26:50.789: W/System.err(26625):    at libcore.io.Posix.connect(Native Method)
05-17 02:26:50.789: W/System.err(26625):    at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
05-17 02:26:50.789: W/System.err(26625):    at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
05-17 02:26:50.789: W/System.err(26625):    at libcore.io.IoBridge.connect(IoBridge.java:112)
05-17 02:26:50.789: W/System.err(26625):    ... 6 more
  • Auch nehme an, Sie fixieren die NPE, die durch Operationen in der falschen Reihenfolge, und poste die exception & stack trace in deiner Frage so sehen kann, was du redest.
  • die Reihenfolge ist richtig, die Buchse Ding hat seinen eigenen thread... ich will hinzufügen, Stapel drucken zum original-Beitrag
  • Nein, die Reihenfolge ist nicht richtig. Sie erstellen den PrintWriter, bevor Sie erstellt haben, der sockel auf dem es basiert. Warum denken Sie, Sie sind immer die NPE genau?
InformationsquelleAutor 0x0000eWan | 2014-05-16
Schreibe einen Kommentar