Клиентские запросы принимаются каждым третьим посетителем? - PullRequest
0 голосов
/ 10 сентября 2018

Я создаю TCP-сервер. Я использую TelNet для подключения клиента к серверу. На сервере есть рабочий метод, который обрабатывает запрос. В методе handle я передаю входные данные клиентов (это работает) и проверяю, соответствует ли он моим заданным протоколам. Странно, что оператор if забирает только первую команду, затем только каждую третью.

Код EX:

    out = new PrintWriter(this.client.getOutputStream(), true);

    in = new BufferedReader(new InputStreamReader(this.client.getInputStream()));

    String read;

    while(!(read = in.readLine()).equals("Bye")) 
    {

        if(read.equals("getTime")) //M1 Method
        {
            out.println(Worker.time());
            //read = in.readLine();

        }
        else if(read.equals("Punch"))
        {
            out.println("you've been punched");
            //read = in.readLine();
        }

    }

Я предполагал, что каждый раз, когда для входа задается значение, мне приходится его сбрасывать (закомментированные строки в каждом методе).

Терминал OutPut:

gsp19 319% telnet localhost 1024

Попытка 127.0.0.1 ...

Подключено к localhost.

Escape-символ: '^]'.

GetTime Пн 10 сентября 15:05:38 EDT 2018

GetTime GetTime GetTime Пн 10 сентября 15:05:43 EDT 2018

GetTime GetTime GetTime Пн 10 сентября 15:05:48 EDT 2018

GetTime GetTime GetTime Пн 10 сентября 15:05:54 EDT 2018

Панч перфоратор до свидания Вы были отключены.

Соединение закрыто сторонним хостом.

...