1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Netzwerkverbindung über VPN: SocketTimeoutExceptiot

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Gecko0815, 17.08.2010.

  1. Gecko0815, 17.08.2010 #1
    Gecko0815

    Gecko0815 Threadstarter Neuer Benutzer

    Beiträge:
    16
    Erhaltene Danke:
    0
    Registriert seit:
    17.08.2010
    Hallo!

    Ich versuche mich seit kurzer Zeit in der Android-Entwicklung und versuche nun, über ein PHP-Script auf eine MySQL-Datenbank in einem Netzwerk, auf das ich nur mittels VPN zugreifen kann, zuzugreifen. Da es natürlich nicht sofort geht, hab ich mal klein angefangen und ein Testprogramm geschrieben, in dem ich mittels HttpGet einfach nur den Quelltext einer Seite anzeigen lasse - und am getesteten Beispiel (Google) klappte das auch.

    Wenn ich hingegen mit dem VPN verbunden bin, klappt der Zugriff auf den gewünschten Rechner im Netzwerk nicht: Beim Verbindungsaufbau bekomm ich den Fehler "java.net.SocketTimeoutException: Socket is not connected" - wenn ich genau die gleiche URL allerdings im Browser aufrufe, lädt er mir die Seite und zeigt sie an, auch SSH-Verbindungen zum Server sind möglich.

    Hier der Code der beim Button-Klick ("Verbinden") ausgeführt wird:
    Code:
            String url = "http://192.168.0.20/";
            //String url = "http://www.google.com/";
            String result = "";
            int timeout = 10000;
            
            HttpGet method = new HttpGet(url);
            HttpResponse res = null;
            HttpParams params = new BasicHttpParams();
            HttpConnectionParams.setConnectionTimeout(params, timeout);
            HttpConnectionParams.setSoTimeout(params, timeout);
            DefaultHttpClient client = new DefaultHttpClient(params);
            
            
            try {
                res = client.execute(method);
            } catch (Exception e) {
                textView1.setVisibility(1);
                textView1.setText(e.toString());
            }
            
            try {
                InputStream is = res.getEntity().getContent();
                BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"));
                StringBuilder sb = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
                }
                is.close();
                result = sb.toString();
                textView1.setVisibility(1);
                textView1.setText(result);
            } catch (Exception e) {
                textView2.setText(e.toString());
                textView2.setVisibility(1);
            }
    Die try-catch-Klauseln und TextViews sind durchs Rumprobieren so angeordnet, den Fehler hat's allerdings immer bei der ersten (bei der Zeile "res = client.execute(method);"

    Hat jemand eine Idee? Ich wäre für jede Hilfe dankbar!
     
    Zuletzt bearbeitet: 17.08.2010

Diese Seite empfehlen