“新路线的重要性”\";在Java网络中
嗯,我需要澄清什么是字符串变量中“\n”新行的重要性“新路线的重要性”\";在Java网络中,java,sockets,networking,Java,Sockets,Networking,嗯,我需要澄清什么是字符串变量中“\n”新行的重要性 import java.net.*; import java.io.*; public class Whois{ public static void main(String[] args){ try{ Socket soc = new Socket("whois.internic.net",43); InputStream in = soc.getInputStrea
import java.net.*;
import java.io.*;
public class Whois{
public static void main(String[] args){
try{
Socket soc = new Socket("whois.internic.net",43);
InputStream in = soc.getInputStream();
OutputStream out = soc.getOutputStream();
String url = "http://www.infiniteskills.com\n";
byte[] buffer = url.getBytes();
out.write(buffer);
int c;
while((c = in.read()) != -1){
System.out.print((char)c);
}
in.close();
out.close();
}catch(IOException e){
System.out.println(e.getMessage());
}
}
}
注意:-如果没有\n,程序将无法正常工作并且没有输出。TCP端口43是Wikipedia上解释的WHOIS协议: 如果您看到的文章是这样写的:发送一个“命令行”,以CRLF结尾。
这就是为什么在代码中需要换行符。TCP端口43是Wikipedia上解释的WHOIS协议: 如果您看到的文章是这样写的:发送一个“命令行”,以CRLF结尾。
这就是为什么在代码中需要换行符。换行符在Java网络中并不重要 然而,它在许多协议中具有重要意义,其中许多协议基于作为线路终止符的
\r\n
的“Telnet终端”约定。这当然包括SMTP、FTP、HTTP和Telnet本身
它对于
BufferedReader.readLine()
方法也很重要。这里有数百个关于readLine()
永远阻塞的问题,答案是“你在读行,但不是在写行”,即只发送一个没有行终止符的字符串。这并不构成一个完整的行,因此readLine()
不会返回它。新行在Java网络中不重要
然而,它在许多协议中具有重要意义,其中许多协议基于作为线路终止符的\r\n
的“Telnet终端”约定。这当然包括SMTP、FTP、HTTP和Telnet本身
它对于
BufferedReader.readLine()
方法也很重要。这里有数百个关于readLine()
永远阻塞的问题,答案是“你在读行,但不是在写行”,即只发送一个没有行终止符的字符串。这并不构成一个完整的行,因此readLine()
不会返回它。您发送它的协议是什么?可能有助于了解out
和in
是什么。好的,我将编辑帖子。在某些协议(如HTTP)中,新行是重要的(它们会在标题完成时显示)。如果在最后一个标题后不发送两行新行,则不会完成。是否确定?示例代码中使用的协议是WHOIS,而不是HTTP。完全不同。您发送它的协议是什么?可能有助于了解out
和in
是什么。好的,我将编辑postIn一些协议(如HTTP)换行符很重要(它们会在标题完成时说)。如果在最后一个标题后不发送两行新行,则不会完成。是否确定?示例代码中使用的协议是WHOIS,而不是HTTP。完全不同。如果它说的是CRLF
,那么他不需要以\r\n
结尾吗?或者\r
是由其他层插入的?实际上@ajb是正确的,它可能需要\r\n
才能完全符合Whois协议。它与\n
一起工作的事实可能只取决于服务器实现。在这种情况下,服务器响应\n
(这可能是一件好事)。蝎子,我没有暗示任何问题,只是给你一个Whois协议的参考,这样你就可以了解如何排除故障。我希望我的回答有帮助!如果它说CRLF
,那么他不需要以\r\n
结尾吗?或者\r
是由其他层插入的?实际上@ajb是正确的,它可能需要\r\n
才能完全符合Whois协议。它与\n
一起工作的事实可能只取决于服务器实现。在这种情况下,服务器响应\n
(这可能是一件好事)。蝎子,我没有暗示任何问题,只是给你一个Whois协议的参考,这样你就可以了解如何排除故障。我希望我的回答有帮助@这个答案回答了问题的标题和正文中都明确说明的问题。更重要的是,原来的海报已经接受它作为正确的答案。因此,你的评论读起来有点奇怪。对不起@EJP,是的,你的文章是建设性的。我没有对你的帖子发表评论,至少我在这里没有看到。告诉OP一点关于“谁是谁”可能会很好。@AlvinBunk这个答案回答了在标题和问题正文中都明确说明的问题。更重要的是,原来的海报已经接受它作为正确的答案。因此,你的评论读起来有点奇怪。对不起@EJP,是的,你的文章是建设性的。我没有对你的帖子发表评论,至少我在这里没有看到。不过,告诉OP一点关于谁是谁可能是件好事。