PEASANT KING
Commander
- Registriert
- Okt. 2008
- Beiträge
- 2.412
Moin Leute,
ich habe mir einen kleinen Multithreaded SocketServer in Java geschrieben, den ich für spätere Zwecke brauche.
Der Server funktioniert auch lokal und empfängt, sowie sendet Nachrichten.
Mein Problem ist allerdings das wenn ich meinen Java Server auf meinem Server im Internet laufen lasse, er durch die öffentliche IP bzw. meine Domain und dem Port nicht erreichbar ist.
Am Anfang dachte ich es läge an der Windows Firewall des Servers, aber selbst wenn ich diese abschalte ist der Java SocketServer nicht ansprechbar.
Ich verbinde mich mittels einem simplen PHP Script und verschicke eine Nachricht an den Server.
Und hier ein Ausschnitt meines Java Servers
Die Methode openServerSocket() wird in einer run Methode aufgerufen danach wird mittels serverSocket.accept() auf Anfragen gewartet. Die Server Klasse implementiert eine Runnable und wird als Thread später aufgerufen.
Woran liegt es das ich von aussen über das Internet nicht auf den Server zugreifen kann bzw. mich mit diesem verbinden kann ?
Wie man sehen kann binde ich den Socket an keine IP sondern lasse ihn auf allen horchen.
Das Binding auf eine feste IP hatte allerdings auch keine Erfolge gezeigt.
ich habe mir einen kleinen Multithreaded SocketServer in Java geschrieben, den ich für spätere Zwecke brauche.
Der Server funktioniert auch lokal und empfängt, sowie sendet Nachrichten.
Mein Problem ist allerdings das wenn ich meinen Java Server auf meinem Server im Internet laufen lasse, er durch die öffentliche IP bzw. meine Domain und dem Port nicht erreichbar ist.
Am Anfang dachte ich es läge an der Windows Firewall des Servers, aber selbst wenn ich diese abschalte ist der Java SocketServer nicht ansprechbar.
Ich verbinde mich mittels einem simplen PHP Script und verschicke eine Nachricht an den Server.
PHP:
$socket = fsockopen("XXXX", 7272, $errno, $errstr, 30);
$msg = $_POST['inhalt'];
fputs($socket , $msg, strlen($msg));
Und hier ein Ausschnitt meines Java Servers
Code:
/**
* Creates a new Server Socket on the provided port
*/
private void openServerSocket() {
try {
this.serverSocket = new ServerSocket(this.serverPort);
serverView.writeConsole("Server wurde erfolgreich auf: " + serverSocket.getLocalSocketAddress() + " gestartet!\n\r");
} catch (IOException e) {
serverView.writeConsole("Der Server kann nicht auf Port: " + serverPort + " gestartet werden!\n\r" + e);
}
}
Die Methode openServerSocket() wird in einer run Methode aufgerufen danach wird mittels serverSocket.accept() auf Anfragen gewartet. Die Server Klasse implementiert eine Runnable und wird als Thread später aufgerufen.
Woran liegt es das ich von aussen über das Internet nicht auf den Server zugreifen kann bzw. mich mit diesem verbinden kann ?
Wie man sehen kann binde ich den Socket an keine IP sondern lasse ihn auf allen horchen.
Das Binding auf eine feste IP hatte allerdings auch keine Erfolge gezeigt.