Мне нужно передать соединение между двумя программами на разных устройствах в моей локальной сети. То есть, у меня есть устройство A, которое должно подключаться к устройству B: portX в моей локальной сети. Проблема в том, что я не могу подключить их друг к другу напрямую. Что мне нужно сделать, это подключить устройство A к серверу и подключить этот сервер к устройству B. На моем сервере я слушаю порт «portX», а когда я получаю соединение, я подключаюсь к устройству B на тот же порт. Затем я должен передать данные от А к В через сервер, но по какой-то причине устройство Б не делает то, что должно делать, когда оно получает данные (команды) от А.
Как я могу это сделать?
Вот как я пытался это сделать:
public class Main {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(8000);
} catch (IOException e) {
System.err.println("Could not listen on port: 8000.");
System.exit(1);
}
Socket clientSocket = null;
try {
clientSocket = serverSocket.accept();
System.err.println("connection accepted");
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
Socket remoteSocket = null;
try {
remoteSocket = new Socket("192.168.1.74", 8000);
} catch (Exception e) {
System.out.println("Failed to connect to device B");
}
PrintWriter remoteOut = new PrintWriter(remoteSocket.getOutputStream(),
true);
BufferedReader remoteIn = new BufferedReader(new InputStreamReader(
remoteSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(
clientSocket.getInputStream()));
String inputLine;
System.out.println("Hi, we are before the while");
int inputChar = 0;
while ((inputChar = in.read()) >= 0) {
remoteOut.println(inputChar);
System.out.println(inputChar);
}
System.out.println("We are after the while");
out.close();
in.close();
remoteIn.close();
remoteOut.close();
clientSocket.close();
serverSocket.close();
remoteSocket.close();
}
}
Спасибо заранее,
Timofey