黑马程序员技术交流社区

标题: Connection reset 报错怎么解决? [打印本页]

作者: 赵江锋    时间: 2011-9-29 22:25
标题: Connection reset 报错怎么解决?
用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错误怎么解决???
作者: 曾公亮    时间: 2011-9-29 23:36
我的那个聊天程序在关闭任何一端时都会出现这个问题;
把  try{
            }
            catch{
                  e.printStaceTrace();//把打印异常这句注释试下
            }
这个异常好像是在流关闭时出现的错误,你可以设置在关闭流后不打印异常,关闭前还是打印的,用if语句控制
[ 本帖最后由 曾公亮 于 2011-09-29  23:37 编辑 ]
作者: 匿名    时间: 2011-9-30 11:52
把流关闭试试。不管怎么说流使用完要关闭的。




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