0
我试图连接到telnet服务器,但是当我连接到运行在端口9999上的telnet服务器时,但是当我运行此代码时。它显示欢迎消息,但没有命令的作品。Uable正确连接到telnet套接字
public static void main(String[] args) {
FileOutputStream fos = null;
final String server = "erdos.dsm.fordham.edu";
final int port = 9999;
Socket sock = null;
PrintWriter out = null;
BufferedReader in = null;
try {
sock = new Socket(server,port);
sock.setKeepAlive(true);
out = new PrintWriter(sock.getOutputStream(),true);
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
} catch (IOException ex) {
Logger.getLogger(Hangman.class.getName()).log(Level.SEVERE, null, ex);
}
try {
System.out.println(in.readLine());
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
s = s.toUpperCase();
while(!s.equals("QUIT"))
{
out.print(s);
out.flush();
System.out.println(in.read());
s = scanner.nextLine();
}
System.out.println("Thanks for playing bye");
} catch (IOException ex) {
Logger.getLogger(Hangman.class.getName()).log(Level.SEVERE,null, ex);
}
}
由于它工作得很好,但不读例如整行,如果我键入帮它只是将返回第一线 –
呀。我知道,因为在第一行和其他行之间有一行跳过。你编码的服务器部分? –
Telnet中的行结束符是'\ r \ n',而不是'\ n'。你不是测试'readLine()'返回null,并且对空行的测试似乎毫无意义。 – EJP