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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邓飞飞 中级黑马   /  2012-5-4 19:11  /  1881 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.*;
import java.net.*;
class PicClient
{
       public static void main(String[] args) throws Exception
       {
                 Socket s = new Socket("192.168.1.101",10011);
                          
                         FileInputStream fis = new FileInputStream("C:\\1.jpg");
                          
                         OutputStream out = s.getOutputStream();
                          
                         byte[] buf = new byte[1024];
                          int len = 0;
                          while((len = fis.read(buf))!=-1)
                          {
                                                  out.write(buf,0,len);
                          }
                          //告诉服务端数据已经写完。
                          s.shutdownOutput();
                          
                         InputStream in = s.getInputStream();
                          
                         byte[] bufIn = new byte[1024];
                          
                         int num = in.read(bufIn);
                          System.out.println(new String(bufIn,0,num));
                          
                         fis.close();
                          s.close();
                  
      }
}
/*
服务端


*/
class PicServer
{
       public static void main(String[] args) throws Exception
       {
                          
                         ServerSocket ss = new ServerSocket(10011);
                          
                         Socket s = ss.accept();
                          String ip = s.getInetAddress().getHostAddress();
                          System.out.println(ip+"::::");
                          
                         InputStream in = s.getInputStream();
                          
                         FileOutputStream fos = new FileOutputStream("2.jpg");
                          
                        
                         byte[] buf = new byte[1024];
                          int len = 0;
                          while((len=in.read(buf))!=-1);
                          {
                                                  
                                 fos.write(buf,0,len);
                                  System.out.println(len);
                          }
                          
                        
                         OutputStream out = s.getOutputStream();
                          out.write("上传成功".getBytes());
                          
                         fos.close();
                          s.close();
                          ss.close();
                          
      }
}
编译时没有问题,但就在运行的时候出现Collection reset 异常 ,这个我还没见过呢

1 个回复

倒序浏览
根据运行时的错误提示,可以找到错误的。提示在while循环里面
while((len=in.read(buf))!=-1);
你这while循环后面居然有个;号;肯定有问题的,太粗心了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马