我目前正在编写一个应该采用明文命令的服务,然后根据thoose命令返回一些内容,这些命令也是明确的。
我对BufferedReader
有这个奇怪的问题,或者,它可能是奇数的telnet,由于某种原因BufferedReader
读取第一个命令,但无论我做什么,该命令都会被忽略,我可以通过两次发送第一个命令来解决这个问题,但在我看来,这只是拉伸了一点。
以下代码采用run()
方法。
然后我将out
设置为PrintWriter
,将in
设置为BufferedReader
。
runs
变量默认为true
。
out = new PrintWriter(handle.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(handle.getInputStream()));
while (runs) {
String msg;
msg = in.readLine();
String[] command;
command = msg.split(" ", 3);
/* do something with the command */
}
所以我的问题是,如果BufferedReader
忽略了第一行,还是telnet与我没有合作?
如果是别的话,请赐教。
修改 我收到了这条调试信息:
调试: ' / nick halmark
所以我想这是关于所有问号的。
答案 0 :(得分:2)
我实际上正在使用最新的Putty,因为我正在开发一个Windows框...据我记得......那么它默认不存在
如果您使用的是PuTTY,则需要选择" Raw" 连接类型。
Microsoft telnet服务器喜欢在开始时进行一些内容/协议协商,因此PuTTY默认会将此作为per the RFC 854 spec执行此操作。这就是你正在阅读的垃圾。