读书人

TCP多线程文件下传

发布时间: 2012-10-30 16:13:36 作者: rapoo

TCP多线程文件上传

/*上传图片*/import java.io.*;import java.net.*;class  JpgClient{public static void main(String[] args) throws Exception{Socket s = new Socket("192.168.1.254",10005);if(args.length==0){System.out.println("哥们,指定个文件,哦不?");return;}File file = new File(args[0]);if(!(file.exists() && file.getName().endsWith(".jpg"))){System.out.println("文件有问题");return ;}FileInputStream fis = new FileInputStream(args[0]);OutputStream out = s.getOutputStream();byte[] buf = new byte[1024*2];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 lenIn = in.read(bufIn);System.out.println("server:"+new String(bufIn,0,lenIn));fis.close();s.close();}}class JpgThread implements Runnable{private Socket s;JpgThread(Socket s){this.s = s;}public void run(){FileOutputStream fos = null;try{int count = 0;String ip = s.getInetAddress().getHostAddress();System.out.println(ip+"...connect");File file = new File(ip+".jpg");while(file.exists()){file = new File(ip+"("+(count++)+").jpg");}InputStream in = s.getInputStream();fos = new FileOutputStream(file);byte[] buf = new byte[1024*2];int len = 0;while((len=in.read(buf))!=-1){fos.write(buf,0,len);}OutputStream out = s.getOutputStream();out.write("上传成功".getBytes());}catch (Exception e){System.out.println(e.toString()+"...");}finally{try{if(fos!=null)fos.close();if(s!=null)s.close();}catch (Exception ex){System.out.println(ex.toString()+"......");}}}}class  JpgServer{public static void main(String[] args) throws Exception{ServerSocket ss = new ServerSocket(10005);while(true){Socket s = ss.accept();new Thread(new JpgThread(s)).start();}}}

?

读书人网 >编程

热点推荐