A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张亚青 中级黑马   /  2013-3-25 11:06  /  1356 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张亚青 于 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());
需要添加第二个参数,不然不会自动刷新,那么就需要手动刷新。

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

1 个回复

倒序浏览
  PrintWriter out=new PrintWriter(s.getOutputStream());
是不是你这一句没有加true啊?如果不加true,是不会自动刷新到缓冲区中的。你可以试试

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马