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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵江锋 黑马帝   /  2011-9-29 22:25  /  4398 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用TCP写了一个客户端可以向服务器上传文件的程序,主要代码如下
        ………………………客户端
                Socket s = new Socket("127.0.0.1",8888);
                FileInputStream fis = new FileInputStream("c:\\dat1.txt");
                OutputStream os = s.getOutputStream();
                byte[] buf = new byte[1024];
                int len;
                while((len = fis.read(buf))!= -1){
                        os.write(buf,0,len);
                }
                s.shutdownOutput();

          ………………………服务器端
                ServerSocket ss = new ServerSocket(8888);
                Socket s = ss.accept();
                System.out.println("a Client connect!");
                InputStream in = s.getInputStream();
                FileOutputStream fos = new FileOutputStream("d:\\dat2.txt");
                byte[] buf = new byte[1024];
                int len;
                while((len = in.read(buf))!= -1){
                        fos.write(buf,0,len);
                }
          ………………………
程序可以复制文件成功,但是报错

Exception in thread "main" java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:168)
        at java.net.SocketInputStream.read(SocketInputStream.java:90)
        at io.Server.main(Server.java:26)
请问Connection reset错误怎么解决???

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

2 个回复

倒序浏览
我的那个聊天程序在关闭任何一端时都会出现这个问题;
把  try{
            }
            catch{
                  e.printStaceTrace();//把打印异常这句注释试下
            }
这个异常好像是在流关闭时出现的错误,你可以设置在关闭流后不打印异常,关闭前还是打印的,用if语句控制
[ 本帖最后由 曾公亮 于 2011-09-29  23:37 编辑 ]
回复 使用道具 举报
黑马网友  发表于 2011-9-30 11:52:41
藤椅
把流关闭试试。不管怎么说流使用完要关闭的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马