为什么服务器端套接字在读取“\ n。\ n”后没有收到消息

时间:2016-04-14 19:41:54

标签: java sockets java-io

我编写了简单的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);
  }

1 个答案:

答案 0 :(得分:1)

你需要放一个" \ n"在QUIT之后,流正在读取QUIT,但它不会导致is.readLine()因为没有"新行"字符串中的字符