Можете ли вы отправить с одного клиента на сервер и получить с сервера на отдельный клиент? - PullRequest
0 голосов
/ 03 мая 2019

У меня 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] с сервера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...