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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 smart2586 于 2013-8-28 08:46 编辑

客户端
  1. import java.io.*;
  2. import java.net.*;
  3. class PicC
  4. {
  5.         public static void main(String[] args) throws Exception
  6.         {
  7.                 Socket s = new Socket("192.168.0.100",10070);
  8.                
  9.                 FileInputStream fis = new FileInputStream("c:\\1.jpg");
  10.                
  11.                 OutputStream os = s.getOutputStream();
  12.                  
  13.                 BufferedReader brIn =
  14.                         new BufferedReader(new InputStreamReader(s.getInputStream()));

  15.                 byte[] by = new byte[1024*10];
  16.                
  17.                 int len = 0;
  18.                
  19.                 while((len=fis.read(by))!=-1)
  20.                 {               
  21.                         os.write(by,0,len);
  22.                 }
  23.                 //告诉服务端数据已写完
  24.                 s.shutdownOutput();
  25.                
  26.                 String str = brIn.readLine();
  27.                 so.p(str);
  28.                
  29.                
  30.         }
  31. }
复制代码
服务端
  1. public class ergs {

  2.         public static void main(String[] args) throws Exception{
  3.                 ServerSocket ss = new ServerSocket(10070);
  4.                
  5.                 Socket socket = ss.accept();
  6.                 String ip  = socket.getInetAddress().getHostAddress();
  7.                 so.p(ip+"......connected");
  8.                
  9.                 FileOutputStream fos = new FileOutputStream("c:\\1_1.jpg");
  10.                
  11.                 InputStream in = socket.getInputStream();
  12.                
  13.                 //向客户端反馈信息
  14.                 PrintWriter  pw =
  15.                                 new PrintWriter(socket.getOutputStream(),true);
  16.                 Date d = new Date();
  17.                
  18.                 byte[] b =new byte[1024];
  19.                 int len = 0;
  20.                 //循环读取socket输入流中的数据
  21.         
  22.                 while ((len = in.read(b))!=-1)//这句出异常 {
  23.                         //将数据写到目标文件
  24.                         fos.write(b, 0, len);
  25.                 }
  26.                 so.p(ip+":上传成功");
  27.                
  28.                 pw.write("在    "+d.toString()+"  上传成功"+"\r\n");
  29.                 pw.close();

  30.         }
  31. }
复制代码
服务端出问题了,异常 Exception in thread "main" java.net.SocketException: Connection reset朋友说是关流的问题,就把有些关流的代码删了,,,但问题好像不再那里

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

1 个回复

正序浏览
请确保客户端的文件存在, 并且指定的服务器IP地址正确. 理论上应该是没问题, 可以加上try...catch..来处理已知的异常
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马