我正在构建一个TCP服务器。我正在使用TelNet将客户端连接到服务器。服务器具有一个处理请求的worker方法。在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();
}
}
我假设每次将输入设置为一个值时,我都必须将其重置(每种方法中的注释行)。
端子输出:
gsp19 319%telnet本地主机1024
正在尝试127.0.0.1 ...
已连接到本地主机。
转义字符为'^]'。
getTime 2018年9月10日星期一15:05:38 EDT
getTime getTime getTime 美国东部时间2018年9月10日15:05:43
getTime getTime getTime 美国东部时间2018年9月10日15:05:48
getTime getTime getTime 美国东部时间2018年9月10日15:05:54
打孔 冲床 再见 您已断开连接。
连接被外部主机关闭。