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?
Du musst angemeldet sein, um einen Kommentar abzugeben.
'Connection time out' ist eine Netzwerk-Konnektivität problem. Kann es eine firewall in der Art zum Beispiel. Es ist nicht ein Programmier-problem und du kannst es nicht lösen, im code.