我目前正在发送如下所示的请求,并且想要打印出响应并退出。是否有一种可靠的方法来获取整个响应然后退出,即,而不是在几x
行或x
几秒后打破循环(这会出现问题)?Scanner
目前,程序永远不会因为等待更多输入的块而退出。如果没有某种可能阻塞的循环/阅读器组合,我还能如何打印出响应?
public class PingHost {
public static void main(String[] args) throws Exception {
Socket s = new Socket("www.google.com", 80);
DataOutputStream out = new DataOutputStream(s.getOutputStream());
out.writeBytes("GET / HTTP/1.1\n\n");
Scanner sc = new Scanner(s.getInputStream());
while (sc.hasNext())
System.out.println(sc.nextLine());
System.out.println("never gets to here");
s.close();
}
}