java基于socket传输zip文件功能示例
更新时间:2017年07月04日 11:23:47 作者:小魏的马仔
这篇文章主要介绍了java基于socket传输zip文件功能,结合实例形式分析了java使用socket进行文件传输的具体操作步骤与服务器端、客户端相关实现技巧,需要的朋友可以参考下
本文实例讲述了java基于socket传输zip文件的方法。分享给大家供大家参考,具体如下:
服务器端程序:
import java.io.*; import java.net.*; import java.io.BufferedInputStream; public class SocketServer { ServerSocket ss=null; Socket s=null; DataInputStream inStream=null; DataOutputStream outStream=null; FileInputStream fin = null; public SocketServer() { try{ ss=new ServerSocket(765); s.setSoTimeout(3000); }catch(Exception e){ System.out.println(e.toString()); } } void waitForClient(){ try{ while(true){ s=ss.accept(); ThreadServer thread = new ThreadServer(s); thread.start(); } }catch(Exception e){ System.out.println(e.toString()); } } public static void main(String[] args) { SocketServer socketServer1 = new SocketServer(); socketServer1.waitForClient(); } }
线程类:
import java.io.*; import java.net.*; class ThreadServer extends Thread{ private Socket socket; private DataInputStream inStream=null; private DataOutputStream outStream=null; private FileInputStream fin = null; public ThreadServer(Socket sock){ this.socket = sock; } public void run(){ boolean bool = false; //while(!bool){ try{ inStream=new DataInputStream(socket.getInputStream()); outStream=new DataOutputStream(socket.getOutputStream()); fin = new FileInputStream("C:/temp/socket/200212060001_ds.zip"); //socket.setSoTimeout(3000); byte[] b = new byte[200]; int i; while((i=fin.read(b))!=-1){ outStream.write(b); } fin.close(); socket.close(); //bool = true; }catch(IOException ex){ System.out.println(ex); } //} } }
客户端:
import java.net.*; import java.io.*; public class SocketClient{ Socket s=null; DataInputStream inStream=null; DataOutputStream outStream=null; FileOutputStream fout = null; public SocketClient() { try{ s=new Socket("192.9.207.52",765); //把这里的IP改成你运行SocketServer.class的IP inStream=new DataInputStream(s.getInputStream()); outStream=new DataOutputStream(s.getOutputStream()); fout = new FileOutputStream("C:/temp/socket/test11.zip"); s.setSoTimeout(3000); waitData(); } catch(Exception e){ System.out.println(e.toString()); } } void init() throws Exception{ } void waitData(){ try{ byte[] b = new byte[200]; int i; while((i=inStream.read(b))!=-1){ fout.write(b); } fout.flush(); fout.close(); s.close(); }catch(Exception e){ System.out.println(e.toString()); } } public static void main(String[] args) { SocketClient socketClient1 = new SocketClient(); } }
更多关于java相关内容感兴趣的读者可查看本站专题:《Java Socket编程技巧总结》、《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
相关文章
一篇文章带你入门Springboot沙箱环境支付宝支付(附源码)
蚂蚁沙箱环境 (Beta) 是协助开发者进行接口功能开发及主要功能联调的辅助环境。沙箱环境模拟了开放平台部分产品的主要功能和主要逻辑2021-06-06Spring Boot使用Thymeleaf + Gradle构建war到Tomcat
今天小编就为大家分享一篇关于Spring Boot使用Thymeleaf + Gradle构建war到Tomcat,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2018-12-12
最新评论