我编写了简单的java客户端/服务器程序,客户端尝试发送如下:
os = new DataOutputStream(socket.getOutputStream());
os.writeBytes("HELO\n");
os.writeBytes("MAIL From: person@example.com\n");
os.writeBytes("RCPT To: to@example.com\n");
os.writeBytes("DATA\n");
os.writeBytes("From: person@example.com\n");
os.writeBytes("Subject: testing\n");
os.writeBytes("Hi there\n"); // message body
os.writeBytes("\n.\n");
os.writeBytes("QUIT");
但是我的服务器端套接字能够读到“\ n”。然后它正在等待阅读。
为什么在“\ n。\ n”
之后没有读取“QUIT”信息服务器代码:
clientSocket = echoServer.accept();
is = new DataInputStream(clientSocket.getInputStream());
os = new PrintStream(clientSocket.getOutputStream());
// As long as we receive data, echo that data back to the client.
while (true) {
line = is.readLine();
os.println(line);
}
答案 0 :(得分:1)
你需要放一个" \ n"在QUIT之后,流正在读取QUIT,但它不会导致is.readLine()
因为没有"新行"字符串中的字符