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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 没有翅膀的小鸟 中级黑马   /  2014-7-25 19:50  /  633 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. 需求:模拟并发上传图片,e盘模拟成客户端,d盘模拟成服务器。设置上传的          条件,如请选择文件上传,文件格式不对,文件过大等等。
  2. import java.io.*;
  3. import java.net.*;

  4. class  Client
  5. {
  6.              public static void main(String[] args) throws Exception
  7.              {
  8.                      if(args.length!=1)
  9.                     {
  10.                              System.out.println("请选择上传的图片");
  11.                              return;
  12.                   }
  13.                 File file=new File(args[0]);
  14.                 if(!(file.exists()&&file.isFile()))
  15.                 {
  16.                         System.out.println("该文件有问题");
  17.                         return;
  18.                 }
  19.                 if(!file.getName().endsWith(".jpg"))
  20.                 {
  21.                         System.out.println("图片文件格式应该为jpg");
  22.                         return;
  23.                 }
  24.                 if(file.length()>1024*1024*5)
  25.                 {
  26.                         System.out.println("图片文件过大");
  27.                         return;
  28.                 }

  29.                 Socket s=new Socket("localhost",10006);
  30.                 FileInputStream fis=new FileInputStream(file);
  31.                 OutputStream out=s.getOutputStream();
  32.                 byte[] buf=new byte[1024*1024];
  33.                 int byt=0;
  34.                 while((byt=fis.read(buf))!=-1)
  35.                 {
  36.                         out.write(buf,0,byt);
  37.                         out.flush();
  38.                 }
  39.                 //告诉服务器传输完毕,不要再等待了
  40.                 s.shutdownOutput();

  41.                 BufferedReader bufr=new BufferedReader(new InputStreamReader(s.getInputStream()));
  42.                 String line=bufr.readLine();
  43.                 System.out.println(line);

  44.                 fis.close();
  45.                 s.close();
  46.         }
  47. }
  48. class Service
  49. {
  50.         public static void main(String[] args) throws Exception
  51.         {
  52.                 ServerSocket ss=new ServerSocket(10006);
  53.                 //让服务器一直开启接受客户端
  54.                 while(true)
  55.                 {       
  56.                         //为每一个来访问的客户端单独开一个线程
  57.                         //服务器要实现的代码单独封装在一个类中并实现Runnable接口
  58.                         Socket s=ss.accept();
  59.                         new Thread(new ServerThread(s)).start();
  60.                 }
  61.                
  62.         }
  63. }
  64. class ServerThread implements Runnable
  65. {
  66.         private Socket s;
  67.         ServerThread(Socket s)
  68.         {
  69.                 this.s=s;
  70.         }
  71.         public void run()
  72.         {
  73.                 try
  74.                 {
  75.                         InputStream in=s.getInputStream();
  76.                         String ip=s.getInetAddress().getHostAddress();
  77.                         System.out.println(ip+"用户连接上了服务器");
  78.                         //设置一个计数器,对重复的文件进行编号以免覆盖
  79.                         int count=1;
  80.                         File file=new File("d:\\photo\\"+ip+"("+count+")"+".jpg");
  81.                         while(file.exists()&&file.isFile())
  82.                                  file=new File("d:\\photo\\"+ip+"("+(count++)+")"+".jpg");


  83.                         FileOutputStream out=new FileOutputStream(file);
  84.                         byte[] buf=new byte[1024*1024];
  85.                         int byt=0;
  86.                         while((byt=in.read(buf))!=-1)
  87.                         {
  88.                                 out.write(buf,0,byt);
  89.                         }

  90.                         PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
  91.                         pw.println("上传成功");

  92.                         out.close();
  93.                         s.close();

  94.                        
  95.                 }
  96.                 catch (Exception e)
  97.                 {
  98.                         throw new RuntimeException("上传失败");
  99.                 }
  100.                
  101.         }
  102. }
复制代码
if判断语句中的return的作用是什么啊?大神解释下

1 个回复

正序浏览
好像只是不要处理而已吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马