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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张卫刚 中级黑马   /  2013-4-6 14:43  /  1737 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张卫刚 于 2013-4-6 20:10 编辑

public class MyIE {

        public static void main(String[] args)throws Exception
        {
                Socket s = new Socket("127.0.0.1",8080);
               
                PrintWriter out = new PrintWriter(s.getOutputStream(),true);

                out.println("GET /myweb/demo.html HTTP/1.1");
                out.println("Accept: */*");
                out.println("Accept-Language: zh-cn");
                out.println("Host: 192.168.1.254:11000");
                out.println("Connection: closed");

                out.println();
                out.println();

                BufferedReader bufr = new BufferedReader(new InputStreamReader(s.getInputStream()));

                String line = null;

                while((line=bufr.readLine())!=null)  //这一行为什么会报这个错呢?Exception in thread "main" java.net.SocketException: Connection reset
                {
                        System.out.println(line);
                }
                bufr.close();
                s.close();
        }

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

5 个回复

倒序浏览
{:soso_e199:}程序是没错,这种情况可能是你tomcat没开,或者不是8080端口等等原因造成的连接超时。。。。你想试试能不能用直接拿别的网站的地址和80端口试一试就行了。。。。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1 别哭了,给你分~

查看全部评分

回复 使用道具 举报
  out.println("Connection: closed");改成keep-alive就不报错,好像不让客户端先关,在研究下
回复 使用道具 举报
  out.println("Connection: closed");关闭太慢了。。应该是tomcat还没有处理完数据就关了,tomcat要继续处理数据就获取连接,但我们的连程序都处理完关闭了所以报这个错,目前了解应该是这样的。。。。待高人指教
回复 使用道具 举报
你服务器端的代码是怎么写的?刚新安装了Tomcat7,测试自己加一服务器端读取你写出的数据正常;服务器端写给MyIE也能正常读取
Server代码如下:
  1. public class ServerDemo {
  2.         public static void main(String[] args) throws IOException {
  3.                 // 建立服务器端的socket服务,需要一个端口
  4.                 ServerSocket ss = new ServerSocket(11011);

  5.                 // 通过accept方法获取客户端对象
  6.                 Socket s = ss.accept();

  7.                 // 通过Socket获取输入流
  8.                 InputStream is = s.getInputStream();
  9.                 OutputStream os = s.getOutputStream();
  10.                 // 写入数据
  11.                                 os.write("hello,tcp,我来了".getBytes());
  12.                 // 接下来就是通过输入流读取客户端的数据了
  13.                 byte[] bys = new byte[1024];
  14.                 int len = is.read(bys);
  15.                 // 数据如下
  16.                 String text = new String(bys, 0, len);
  17.                 String ip = s.getInetAddress().getHostAddress();

  18.                 System.out.println(ip + "***" + text);

  19.                 // 释放资源
  20.                 os.close();
  21.                 ss.close();
  22.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
应该是端口被占用了 用360 qq管家 金山管家之类的软件查看一下端口
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马