Guten Abend zusammen,
Ich habe eine Client und eine Server Klasse die über Sockets miteinander kommunizieren. Der Server wartet in einer while(true) Schleife permanent auf einen Clienten der, sobald er eine Verbindung herstellt eine Bestätigungsnachricht geschickt bekommt und danach wird die Verbindung von Seiten des Server wieder getrennt.
Das ganze geht solange gut, wie ich mich auf lokaler Ebene (localhost, oder im eigenen WLAN) bewege. Sobald ich versuche übers Internet eine Verbindung herzustellen gibts eine Fehlermeldung (s.h. Anhang)
Ein Rechner war Windows 7 und auf dem anderen läuft Ubuntu Linux 10.04, die Firewall auf dem Win7 war aus, auf dem Ubuntu wüsste ich nicht, dass es dort standartmäßig so etwas gibt.
Client.java :
Server.java:
Ich habe eine Client und eine Server Klasse die über Sockets miteinander kommunizieren. Der Server wartet in einer while(true) Schleife permanent auf einen Clienten der, sobald er eine Verbindung herstellt eine Bestätigungsnachricht geschickt bekommt und danach wird die Verbindung von Seiten des Server wieder getrennt.
Das ganze geht solange gut, wie ich mich auf lokaler Ebene (localhost, oder im eigenen WLAN) bewege. Sobald ich versuche übers Internet eine Verbindung herzustellen gibts eine Fehlermeldung (s.h. Anhang)
Ein Rechner war Windows 7 und auf dem anderen läuft Ubuntu Linux 10.04, die Firewall auf dem Win7 war aus, auf dem Ubuntu wüsste ich nicht, dass es dort standartmäßig so etwas gibt.
Client.java :
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
String ip = args[0];
int port = Integer.parseInt(args[1]);
try {
Socket connection = new Socket(ip,port);
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line = new String();
while((line = in.readLine()) != null){
System.out.println(line);
}
System.out.println("Closing down connection...");
in.close();
connection.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Server.java:
Java:
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Writer;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
private Socket socket;
public Server(int port) {
try {
ServerSocket sSocket = new ServerSocket(port);
System.out.println("Server is ready");
while (true) {
System.out.println("Waiting for client...");
socket = sSocket.accept();
System.out.println("Connection established. ");
System.out.println(socket.getInetAddress().toString());
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
out.write("This is a test message.");
out.flush();
out.close();
socket.close();
System.out.println("Connection closed");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
Server serv = new Server(Integer.parseInt(args[0]));
}
}