0
我已经写了简单的Java客户端/服务器程序和客户端试图像下面发送“\ n \ n”:为什么看完后服务器端套接字没有收到消息
os = new DataOutputStream(socket.getOutputStream());
os.writeBytes("HELO\n");
os.writeBytes("MAIL From: [email protected]\n");
os.writeBytes("RCPT To: [email protected]\n");
os.writeBytes("DATA\n");
os.writeBytes("From: [email protected]\n");
os.writeBytes("Subject: testing\n");
os.writeBytes("Hi there\n"); // message body
os.writeBytes("\n.\n");
os.writeBytes("QUIT");
但我的服务器端套接字能够读到“\ n”。然后它正在等待阅读。
为什么不读 “QUIT” 消息后
Server代码 “\ n \ n”:
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);
}
也许您想尝试'BufferedReader.readLine()'而不是使用DataInputStream。请参阅文档:https://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.html了解为什么您不应该使用'DataInputStream' – bili
这不适用于真正的邮件服务器。 SMTP中的行结束符被定义为'\ r \ n',而不是'\ n'。 – EJP