Я создаю 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
Панч
перфоратор
до свидания
Вы были отключены.
Соединение закрыто сторонним хостом.