我的客户是一个网页浏览器,并发送请求使用这个网址为myserver: http://localhost
这是服务器端的代码。 问题就出在的run方法ServingThread
类。
class ServingThread implements Runnable{
private Socket socket ;
public ServingThread(Socket socket){
this.socket = socket ;
System.out.println("Receives a new browser request from "
+ socket + "\n\n");
}
public void run() {
PrintWriter out = null ;
try {
String str = "" ;
out = new PrintWriter( socket.getOutputStream() ) ;
out.write("This a web-page.") ;
// :-(
out.flush() ;
// :-(
socket.close() ;
System.out.println("Request successfully fulfilled.") ;
} catch (IOException io) {
System.out.println(io.getMessage());
}
}
}
无论我使用
out = new PrintWriter( socket.getOutputStream(), true ) ;
要么
out = new PrintWriter( socket.getOutputStream() ) ;
输出不来给浏览器。 输出来临到浏览器只有当我使用手动冲洗使用流
out.flush() ;
我的问题: new PrintWriter( socket.getOutputStream(), true )
应该自动刷新输出缓冲区,但它没有这样做。 为什么?