У меня 2 клиентских класса.[Parent] и [Child] Я хочу отправить информацию с [Parent] на сервер и получить эту информацию о [Child] с сервера
Я подумал, может быть, это потому, что мне нужно сделать каждого клиента по-новомунить, но еще не очень много работал с потоками.
[SERVER]
public class Server {
public static void main(String[] args) throws Exception {
System.out.println("Server is ONLINE.");
ExecutorService pool = Executors.newFixedThreadPool(500);
try (ServerSocket listener = new ServerSocket(11111)) {
while (true) {
pool.execute(new Handler(listener.accept()));
}
}
}
private static class Handler implements Runnable, Serializable {
private Socket socket;
private ObjectInputStream in;
private ObjectOutputStream out;
public Handler(Socket socket) throws IOException {
this.socket = socket;
}
public void run() {
try {
in = new ObjectInputStream(socket.getInputStream());
out = new ObjectOutputStream(socket.getOutputStream());
while (true){
MouseCoordinates coord = (MouseCoordinates)
in.readObject();
System.out.println(coord.getX());
System.out.println(coord.getY());
out.writeObject(coord);
}
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
}
[PARENT]
public class Client {
private static ObjectOutputStream out;
private static ObjectInputStream in;
private static int x, y;
public static void main(String[] arg) throws IOException {
System.out.println("Welcome Client.");
Socket s = new Socket("127.0.0.1", 11111);
System.out.println("You are connected.");
out = new ObjectOutputStream(s.getOutputStream());
System.out.println("Got the output stream.");
x = 10;
y = 11;
out.writeObject(new MouseCoordinates(x, y));
System.out.println("Information sent: " + new MouseCoordinates(x, y));
System.out.println("Sending information to the server.");
}
}
[CHILD]
public class OtherClient {
public static void main(String[] arg) throws IOException,
ClassNotFoundException {
Socket s = new Socket("127.0.0.1", 11111);
//QUERY PASSING
ObjectInputStream in = new ObjectInputStream(s.getInputStream());
MouseCoordinates coords = (MouseCoordinates) in.readObject();
System.out.println(coords);
}
}
Ожидается: отправка с [PARENT] на сервер и получение по [CHILD] с сервера
Факт: отправка с [PARENT] на сервер и не прием по [CHILD] с сервера