黑马程序员技术交流社区

标题: 客户端浏览器访问自定义服务器的问题 [打印本页]

作者: 张亚青    时间: 2013-3-25 11:06
标题: 客户端浏览器访问自定义服务器的问题
本帖最后由 张亚青 于 2013-3-25 16:30 编辑

用浏览器访问自定义服务器的时候,服务器显示已连接,可是为什么浏览器不能显示服务器发送的内容呢


  1. package chapter17;
  2. import java.net.*;
  3. import java.io.*;
  4. /**

  5. 演示客户端和服务端。
  6. 客户端:浏览器。
  7. 服务端:自定义。
  8. */

  9. class  SelfServer
  10. {
  11.         public static void main(String[] args) throws Exception
  12.         {
  13.                 ServerSocket ss=new ServerSocket (11000);

  14.                
  15.                 Socket s=ss.accept();

  16.                 InputStream in=s.getInputStream();
  17.                 byte[] buf=new byte[1024];

  18.                 int len=in.read(buf);
  19.                 System.out.println(new String(buf,0,len));

  20.                 String ip=s.getInetAddress().getHostAddress();
  21.                 System.out.println(ip+"....connected");
  22.                 PrintWriter out=new PrintWriter(s.getOutputStream());
  23.                 out.println("客户端你好");

  24.                 s.close();
  25.                 ss.close();
  26.         }
  27. }



复制代码
我电脑上浏览器给服务器发送的请求内容如下:

GET / HTTP/1.1
Accept: text/html, application/xhtml+xml, * /*
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Tride
nt/5.0; NP06)
UA-CPU: AMD64
Accept-Encoding: gzip, deflate
Host: 192.168.0.29:11000
Connection: Keep-Alive



2013-3-25【答案】PrintWriter out=new PrintWriter(s.getOutputStream());
需要添加第二个参数,不然不会自动刷新,那么就需要手动刷新。


作者: 小黑黑    时间: 2013-3-25 13:15
  PrintWriter out=new PrintWriter(s.getOutputStream());
是不是你这一句没有加true啊?如果不加true,是不会自动刷新到缓冲区中的。你可以试试




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2