Servus,
ich versuch im moment eine Verbindung zu einem Server aufzubauen der auf einem lokalen Port lauscht.
Wobei die Verbindung zum Server per portForwarding erfolgt.
Die Ausgabe von System.out.println() ist RemoteHost: 127.0.0.1 RemotePort: (Zufälliger Port).
Der RemoteHost verliert nach der Verbindung zum Serversocket keine Anwort mehr!
Warum krieg ich bei dem stdout nicht den RemoteHost von Client angezeigt?
[EDIT]
Ich hab das Code beispiel mal ein bisschen ausführlicher gemacht.
Client:
Server:
ich versuch im moment eine Verbindung zu einem Server aufzubauen der auf einem lokalen Port lauscht.
Wobei die Verbindung zum Server per portForwarding erfolgt.
Java:
InetAddress inetAddress = InetAddress.getByName(null); // Localhost
ServerSocket serverSocket = new ServerSocket(3333, 0, inetAddress);
Socket clientSocket = serverSocket.accept();
System.out.println("Remotehost: " + clientSocket.getInetAddress().getHostName() + " RemotePort: " + clientSocket.getPort());
Die Ausgabe von System.out.println() ist RemoteHost: 127.0.0.1 RemotePort: (Zufälliger Port).
Der RemoteHost verliert nach der Verbindung zum Serversocket keine Anwort mehr!
Warum krieg ich bei dem stdout nicht den RemoteHost von Client angezeigt?
[EDIT]
Ich hab das Code beispiel mal ein bisschen ausführlicher gemacht.
Client:
Java:
JSch ssh = JSch();
session = ssh.getSession("root","192.168.1.2",22);
session.setPassword("MyPassword");
session.connect();
int dynamicPort = session.setPortForwardingL(2222,"127.0.0.1",4000);
Socket clientSocket = new Socket("127.0.0.1", dynamicPort);
BUfferedReader br = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter pw = new PrintWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
pw.println("Hello!");
pw.flush();
long timeout = System.currentTimeMillis() + 60000;
String line;
while(System.currentTimeMillis() < timeout) {
line = br.ready() ? br.readLine() : "";
if (line.equals("Hi Socket!")) {
System.out.println("Juhu server is there!");
break;
}
Thread.sleep(2000);
}
Server:
Java:
InetAddress inetAddress = InetAddress.getByName(null); // Localhost
ServerSocket serverSocket = new ServerSocket(4000, 0, inetAddress);
Socket clientSocket = serverSocket.accept();
PrintWriter pw = new PrintWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
BufferedReader br = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
long timeout = System.currentTimeMillis() + 60000;
while(System.currentTimeMillis() < timeout) {
line = br.ready() ? br.readLine() : "";
if (line.equals("Hello!") {
pw.println("Hi Socket!");
System.out.println("Send message to Client!");
pw.flush();
}
Thread.sleep(2000);
}
Zuletzt bearbeitet: