Socket Erreichbarkeit eines Java Servers (Socket-Lösung) über das Internet

J

JackJackson_12

Gast
Hallo Forumgemeinde!

folgendes Problem beschäftigt mich seit Tagen:

Programmbeschreibung:
Der unten angefügte Code stellt eine ganz simple Client-Server Anwendung
dar, bei welcher der Client einen String an den Server sendet.

Problembeschreibung:
Lokal (über „localhost“ und im LAN) funktioniert alles wie erwartet. Der
Server wartet am deklarierten Port und nimmt den String des Clients
entgegen.
Sofern ich den Aufruf über das Internet ausführen will (die notwendigen
Vorkehrungen: „dyndns“, Portweiterleitung) habe ich getroffen, führt das am
Client nach einiger Zeit zu folgender „Exception“:

Java:
java.net.ConnectException: Connection timed out: connect
      at java.net.PlainSocketImpl.socketConnect(Native Method)
      at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
      at
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
      at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
      at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
      at java.net.Socket.connect(Socket.java:519)
      at java.net.Socket.connect(Socket.java:469)

Bei meinen ausführlichen Problembehebungsversuchen habe ich folgendes
unternommen (hoffentlich vollständig):
• Alle Firewalls deaktiviert (Windows und am Router)
• Die Serverrolle an diverse andere virtuelle und physikalische Rechner
übertragen
• Versuche mit diversen anderen Ports
• Überprüfung der IP-Adressen (insbesondere ob bei „dyndns“ die
richtige Adresse hinterlegt ist)
• telnet führt ebenfalls zu einem Timeout (lokal funktioniert es)
• Netzwerkverkehr mittels wireshark abgehört (mit dem Ergebnis, dass keine Antworten für die TCP Anfragen reinkommen)
wahrscheinlich habe ich noch etliches mehr überprüft, aber das ist alles
was mir gerade einfällt.
Anmerkungen:
• Im selben Netz betreibe ich einen Webserver, der ist ohne Probleme
auch von „außen“ erreichbar!
• Meine Rechner hängen hinter zwei Routern (das ist so weil es hier
nicht anders geht) der erste Router leitet alles an den zweiten
Router weiter und dieser leitet dann an die entsprechenden Rechner
weiter. (funktioniert seit langem einwandfrei – ftp-Server, Webserver
etc.)
• Auch mit der Erreichbarkeit eines RMI-Servers und der Erreichbarkeit
einer JMS-Queue von extern habe ich Schwierigkeiten (deshalb der
Versuch mit dieser simplen Anwendung)
• Auf folgenden Betriebssystemen habe ich den Server am Laufen gehabt:
Windows 7, Windows XP und Linux Ubuntu

Hat jemand eine Idee woran das Problem liegen könnte?

Java:
public class Client {
      /**
        * @param args
        */
      public static void main(String[] args) {
             String str = JOptionPane.showInputDialog("Bitte " +
                         "kurzen Text eingeben");
             try {
                   Socket socket = new Socket();
                   socket.connect(new InetSocketAddress("<meine Adr.>"
                               , 20100));
                   System.out.println(socket.getPort());
                   OutputStream outStream = socket.getOutputStream();
                   BufferedWriter bw = new BufferedWriter(new
                               OutputStreamWriter(outStream));
                   bw.write(str);
                   bw.flush();
                   outStream.close();
                   bw.close();
                   socket.close();
                   JOptionPane.showMessageDialog(null,
                               "Übermittlung hat funktioniert!");
             } catch (UnknownHostException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
             } catch (IOException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
                   JOptionPane.showMessageDialog(null,
                               "Übermittlung hat NICHT funktioniert!");
             }
      }
}

Java:
public class Server {
      private static ServerSocket s;
      public static void main(String[] args) {
            try {
                  s = new ServerSocket();
                  s.bind(new InetSocketAddress(20100));
            } catch (IOException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
            }
            while(true) {
                  try {
                        Socket client = s.accept();
                        InputStream clientIn = client.getInputStream();
                        BufferedReader bufClientIn =
                              new BufferedReader(new
                                          InputStreamReader(clientIn));
                        String lineFromClient = bufClientIn.readLine();
                        System.out.println("FROMCLIENT: "
                                    + lineFromClient);
                        JOptionPane.showMessageDialog(null,
                                    "FROMCLIENT: " + lineFromClient);
                        clientIn.close();
                        bufClientIn.close();
                        client.close();
                  } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                  }
            }
      }
}

vielen Dank schon mal für die Mühe!

Vg Jack
 
G

Gast2

Gast
ich bin mir nicht sicher ... aber mit Deinem Code bindest Du den Server an 127.0.0.1
Java:
                  s = new ServerSocket();
                  s.bind(new InetSocketAddress(20100));

Du brauchst aber 0.0.0.0

Java:
server = new ServerSocket();
server.bind(new InetSocketAddress("0.0.0.0", port));
 
J

JackJackson_12

Gast
Danke für Deine Antwort.

Leider ist Dein Vorschlag nicht die Lösung.

Java:
 System.out.println( s.getLocalSocketAddress() );

gibt mir folgendes aus:

0.0.0.0/0.0.0.0:20100


Trotzdem danke schon mal!

Vg Jack
 
J

JackJackson_12

Gast
Problem behoben. Offensichtlich hat mein Router einen BUG und zwar: Wenn man eine Portweiterleitung deaktivert, werden sämtliche Portweiterleitungen deaktiviert obwohl sie noch als aktiviert angezeigt werden. (Netgear halt)

Danke trotzdem für die Unterstützung.

Vg Jack
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M SocketError bei Aufruf eines SOAP-Servers Netzwerkprogrammierung 8
G seite nach posten eines html-forms laden Netzwerkprogrammierung 0
J Protokolle innerhalb eines Heimnetzwerks Netzwerkprogrammierung 6
V Kann man mit Hilfe eines Java-Programms den Zugriff auf bestimmte Internetseiten verhinden? Netzwerkprogrammierung 3
N Name eines Attributes aus einem festen String und einer Variablen generieren Netzwerkprogrammierung 5
X Response eines RESTful-Service mit JSON Netzwerkprogrammierung 8
F Neuer Json aus teilen eines vorhandenen Json Netzwerkprogrammierung 0
N Client Identifikation eines Servers Netzwerkprogrammierung 1
R Problem beim Programmieren eines Chatprogramms Netzwerkprogrammierung 5
K Multiplayer eines Spiels Netzwerkprogrammierung 21
K Ansprechen eines Remote Druckers Netzwerkprogrammierung 2
L Erstellen eines Online Multiplayer Apps Netzwerkprogrammierung 10
eLogic Download eines Links Netzwerkprogrammierung 2
U Socket Abhören eines Sockets/Ports in extra Thread Netzwerkprogrammierung 8
2 Schliessen eines Serversockets Netzwerkprogrammierung 2
Hindi93 Abbruch eines Programmes abfangen Netzwerkprogrammierung 8
1 SSH-Kommunikation - Ende eines Streams nicht erkenntlich Netzwerkprogrammierung 2
C Alle Computer eines Netzwerkes finden Netzwerkprogrammierung 32
N Senden eines Arrays Netzwerkprogrammierung 6
U Name eines Netzlaufwerks ermitteln Netzwerkprogrammierung 5
L Body eines http Request auslesen Netzwerkprogrammierung 2
K Ende eines HTTP Response/Request Netzwerkprogrammierung 6
aze Tcp Verkehr eines Applets simulieren Netzwerkprogrammierung 10
M Socket Leistungsfähigkeit eines xSocketservers, wieviele Verbindungen max? Netzwerkprogrammierung 4
clupus Exception beim Schließen eines Sockets Netzwerkprogrammierung 6
cowabunga1984 Transferierte Datenmenge eines SOAP Clients (JAX-WS) anzeigen Netzwerkprogrammierung 2
K TrafficClass eines UDP Pakets kommt beim Empfänger nicht an Netzwerkprogrammierung 5
musiKk Problem bei bidirektionaler Nutzung eines Socket Netzwerkprogrammierung 2
J Machbarkeit eines Bluetooth-Servers? Netzwerkprogrammierung 2
S Realisierung eines Netzwerkcodes für ein Strategiespiel Netzwerkprogrammierung 7
K "Ende eines Sockets" Netzwerkprogrammierung 9
A Broadcast - senden eines Packetes an alle rechner im netz Netzwerkprogrammierung 15
P problem beim schließen eines Streams Netzwerkprogrammierung 6
K Mit Java-MailAPI dir Verfügbarkeit eines SMTP-Servers prüfen Netzwerkprogrammierung 4
J while-Schleife / Abbruchbed. beim Einlesen eines Streams Netzwerkprogrammierung 4
U Ende eines Inputstreams ermitteln Netzwerkprogrammierung 3
J Länge eines Streams Netzwerkprogrammierung 4
T Timeout eines KSOAP-Calls Netzwerkprogrammierung 5
G Info eines Webseites kopieren Netzwerkprogrammierung 16
J Antwort eines Soaprequests parsen mittels org.apache.soap Netzwerkprogrammierung 2
E Möglichkeit zum Timeout eines Process Netzwerkprogrammierung 7
T Erstellung eines Proxy Netzwerkprogrammierung 11
T Pfad eines Servlets rausfinden Netzwerkprogrammierung 2
O Einbinden eines java-servers Netzwerkprogrammierung 9
C Übergabe eines Datensatzes (Übergabestruktur) Netzwerkprogrammierung 12
G Verzeichnis eines Rechners übers Netzwerk auslesen Netzwerkprogrammierung 5
B Problem mit der Ausgabe eines Strings an SocketOut Netzwerkprogrammierung 4
D HTTP Apache-HttpClient/UNAVAILABLE (java 1.4) Netzwerkprogrammierung 18
M JAX-WS unter Java 17 plötzlich nicht mehr möglich Netzwerkprogrammierung 5
K Java RMI bricht ab wenn Remote eine Methode ausgeführt werden soll Netzwerkprogrammierung 5
M HTTP Let's Encrypt und Java Trust-Store Netzwerkprogrammierung 6
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
D path-Variablen in eine URL hinzufügen mit Java 1.8 Netzwerkprogrammierung 2
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
S Von Java auf passwortgeschützten Server zugreifen + Umgang mit Ports Netzwerkprogrammierung 28
S Probleme bei Java-Installation auf Server (Linux/Shell/Terminal) Netzwerkprogrammierung 6
S Java: Anbindung an einen realen Server? (+ Portfreigabe) Netzwerkprogrammierung 8
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
x46 Java SSLContext erstellen mit SSL-Zertifikat Netzwerkprogrammierung 1
P Jenkins Login per Java Download Manager Netzwerkprogrammierung 15
N Java socket Programmierung Filme verschicken Netzwerkprogrammierung 20
S HTTP Post?!? - Java Server Netzwerkprogrammierung 7
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
K Java Websocketserver Problem | Android to Pi Netzwerkprogrammierung 1
R Anfängerbeispiel: Suche Java-Anwendung die http-Anfragen in Tomcat liest Netzwerkprogrammierung 8
V Browsergame mit Java(WebSocketServer) als Backend? Netzwerkprogrammierung 5
platofan23 Socket Java Socket mit DynDns nicht erreichbar Netzwerkprogrammierung 6
S Fragen zu Java Webservice mit Axis2 Netzwerkprogrammierung 0
M Mit Java Mail Mails an Webmailer schicken Netzwerkprogrammierung 1
mor16Euro HTTP Php website mit Java aktualisiern Netzwerkprogrammierung 6
T HTTP JAVA Browser Konsolenanfrage(JavaScript) Netzwerkprogrammierung 7
L Socket Wie kann man in Java die Anzahl der Objekte in einem InputStream sehen ohne ihn durchgehen zu müssen Netzwerkprogrammierung 1
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
M Socket peer to peer Verbindung zwischen Java und Matlab Netzwerkprogrammierung 0
L Remote Desktop per Java steuern Netzwerkprogrammierung 4
F Server für Java Applikationen Netzwerkprogrammierung 16
J Webserver mit Java schreiben? Netzwerkprogrammierung 4
D JAVA RMI Netzwerkprogrammierung 1
K HTTP Mit Java HTML Codeauslesen um damit zu arbeiten Netzwerkprogrammierung 7
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
A Bestimmter URL/Certificate per Java immer vertrauen (Trustmanager/HostnameVerifier) Netzwerkprogrammierung 1
T VPN-Verbindung über Java Netzwerkprogrammierung 4
M HTTP PATCH Request mit Java ausführen Netzwerkprogrammierung 2
Niggo_ Probleme mit Java Mail Netzwerkprogrammierung 14
Aruetiise Socket Java Programm auf Server Netzwerkprogrammierung 3
L FTP Java Interpreter unterbindet SSL Handshake Netzwerkprogrammierung 2
C IFrame mit java auslesen Netzwerkprogrammierung 1
A FTP wie kann ich von java auf datei in fpt://192.168.178.1 lesen/schreiben? Netzwerkprogrammierung 3
C Datensammlung mit Java RMI Netzwerkprogrammierung 0
K Java Jsoup : OnLoad Netzwerkprogrammierung 0
S Java Chat Server Netzwerkprogrammierung 8
Carres HTTP Vorhandenen Session-ID Cookie von Firefox, Chrome oder IE in Java verwenden Netzwerkprogrammierung 2
B Java+Grbl: G-Code Befehle mit Java an Arduino senden und lesen Netzwerkprogrammierung 1
Z HTTP HTML Element auslesen in Java Netzwerkprogrammierung 1
T Socket Java Programm hängt sich auf bei dem versuch von einem Socket scanner Daten zu erhalten. Netzwerkprogrammierung 1
Thallius HTTP HTTPS unter Java 1.6 schlägt fehl Netzwerkprogrammierung 4
Thallius Java Application über ZScaler benutzer? Netzwerkprogrammierung 0
P Chat in Java Netzwerkprogrammierung 3

Ähnliche Java Themen


Oben