Как исправить ServerSocket только выполняя первую полученную команду? - PullRequest
0 голосов
/ 28 декабря 2018

Я написал клиент Socket и программу ServerSocket.Клиент работает на ПК1 и отправляет команды на серверный сокет на втором ПК.Клиент работает отлично (подтверждается инструкциями печати), но после того, как сервер достигает любого оператора case коммутатора (код ниже), он останавливается.Я протестировал операторы print, и он никогда не покидает блок case x.Он просто выполняет команду dt.browse (...) и затем, кажется, на этом останавливается.Это команда обзора, которая блокирует или я что-то упустил?

public static void main(String[] args) throws IOException {
    ServerSocket serverSocket = new ServerSocket(...);


    while (true) {
        Socket socket = serverSocket.accept();
        DataInputStream dIn = new DataInputStream(socket.getInputStream());

        byte command = dIn.readByte();
        System.out.println("received command:"+command);
        switch (command) {
            case 1:
                try
                {
                    URI uri = new URI("https://www.google.ch/");
                    Desktop dt = Desktop.getDesktop();
                    dt.browse(uri);
                }
                catch(Exception ex){ex.printStackTrace();}
                //Runtime.getRuntime().exec("start /max chrome google.ch");
                break;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...