Java Webprogramming - Problem :(
2011-10-23 23:44
Anonymer User
Hallo Leute. Ich schreibe gerade ein onlinefähiges Javaprogramm, um genauer zu sein einen Chat. Das ganze basiert auf Sockets. Im Grunde habe ich alles wesentliche bereits geschrieben, Client und Serverseite stehen und können lokal auch miteinander kommunizieren.
Doch sobald ich versuche das ganze über das Internet zu testen kommt es zu Problemen. Das Clientseitige Socket schmeisst eine ConnectionException. Nun weiss ich leider absolut nicht wo der Fehler liegt :(.
Ich schreibe einfach mal auf wie ich mir das denke, vielleicht liegt bereits hier der Hase im Pfeffer begraben.
Um das ganze "offline" zu testen, erstelle ich clientseitig den Socket wie folgt:
controllerSocket = new Socket("localhost",4441);
Das funktioniert auch wunderbar, da der Server und der Client auf derselben Maschine liegen. Nun möchte ich aber über das Internet auf meinen Server zugreifen. Client und Server sollen also weiterhin auf meiner Maschine laufen, aber die das ganze soll erst durchs Internet zu mir zurück kommen(ist hieran bereits was falsch?), da ich leider gerade keinen Laptop o.ä. zur Hand habe, um die zwei Seiten physikalisch zu trennen.
Ich schaue also nach was meine vom Provider zugewiesene IP-Adresse ist (z.b. über whatismyip.com oder so). Dann konstruiere ich mir eine Instanz des InetAdress Objektes:
InetAddress adress = InetAddress.getByName("88.44.159.77"); //ipadresse fiktiv
Mit diesem Objekt füttere ich dann den Socket:
controllerSocket = new Socket(adress,4441);
Beides ist so in der Dokumentation nachlesbar, das holen der InetAdress Instanz und das erstellen des Sockets damit sollte genau so funktionieren.
Nun bekomme ich aber wie gesagt die "java.net.ConnectException: Connection refused: connect" Exception. Was ist nun falsch? Liegt es am Port? Wie muss ich diesen Port wählen? Muss ich am Rechner irgendwas umstellen, dass der Port nach außen hin frei steht? Oder im Router?
Ich google schon Ewigkeiten ohne glücklich zu werden :(. Ich hoffe irgendjemand kennt sich damit einbisschen aus. Wäre euch echt dankbar!
Doch sobald ich versuche das ganze über das Internet zu testen kommt es zu Problemen. Das Clientseitige Socket schmeisst eine ConnectionException. Nun weiss ich leider absolut nicht wo der Fehler liegt :(.
Ich schreibe einfach mal auf wie ich mir das denke, vielleicht liegt bereits hier der Hase im Pfeffer begraben.
Um das ganze "offline" zu testen, erstelle ich clientseitig den Socket wie folgt:
controllerSocket = new Socket("localhost",4441);
Das funktioniert auch wunderbar, da der Server und der Client auf derselben Maschine liegen. Nun möchte ich aber über das Internet auf meinen Server zugreifen. Client und Server sollen also weiterhin auf meiner Maschine laufen, aber die das ganze soll erst durchs Internet zu mir zurück kommen(ist hieran bereits was falsch?), da ich leider gerade keinen Laptop o.ä. zur Hand habe, um die zwei Seiten physikalisch zu trennen.
Ich schaue also nach was meine vom Provider zugewiesene IP-Adresse ist (z.b. über whatismyip.com oder so). Dann konstruiere ich mir eine Instanz des InetAdress Objektes:
InetAddress adress = InetAddress.getByName("88.44.159.77"); //ipadresse fiktiv
Mit diesem Objekt füttere ich dann den Socket:
controllerSocket = new Socket(adress,4441);
Beides ist so in der Dokumentation nachlesbar, das holen der InetAdress Instanz und das erstellen des Sockets damit sollte genau so funktionieren.
Nun bekomme ich aber wie gesagt die "java.net.ConnectException: Connection refused: connect" Exception. Was ist nun falsch? Liegt es am Port? Wie muss ich diesen Port wählen? Muss ich am Rechner irgendwas umstellen, dass der Port nach außen hin frei steht? Oder im Router?
Ich google schon Ewigkeiten ohne glücklich zu werden :(. Ich hoffe irgendjemand kennt sich damit einbisschen aus. Wäre euch echt dankbar!