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沙箱环境支付宝支付(附源码)

    一篇文章带你入门Springboot沙箱环境支付宝支付(附源码)

    蚂蚁沙箱环境 (Beta) 是协助开发者进行接口功能开发及主要功能联调的辅助环境。沙箱环境模拟了开放平台部分产品的主要功能和主要逻辑
    2021-06-06
  • java判断字符串是正整数的实例

    java判断字符串是正整数的实例

    今天小编就为大家分享一篇java判断字符串是正整数的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • jstorm源码解析之bolt异常处理方法

    jstorm源码解析之bolt异常处理方法

    下面小编就为大家带来一篇jstorm源码解析之bolt异常处理方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • springboot 之jpa高级查询操作

    springboot 之jpa高级查询操作

    这篇文章主要介绍了springboot 之jpa高级查询操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Java给PDF加水印并合并多个文件

    Java给PDF加水印并合并多个文件

    大家好,本篇文章主要讲的是Java给PDF加水印并合并多个文件,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • Spring5源码解析之Spring中的异步和计划任务

    Spring5源码解析之Spring中的异步和计划任务

    本篇文章主要介绍了Spring5源码解析之Spring中的异步和计划任务,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-10-10
  • Java基础之文件和目录操作

    Java基础之文件和目录操作

    这篇文章主要介绍了Java基础之文件和目录操作,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • java编程题之从上往下打印出二叉树

    java编程题之从上往下打印出二叉树

    这篇文章主要为大家详细介绍了java编程题之从上往下打印出二叉树,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • Spring Boot使用Thymeleaf + Gradle构建war到Tomcat

    Spring Boot使用Thymeleaf + Gradle构建war到Tomcat

    今天小编就为大家分享一篇关于Spring Boot使用Thymeleaf + Gradle构建war到Tomcat,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Maven分步详解多环境配置与应用流程

    Maven分步详解多环境配置与应用流程

    这篇文章主要介绍了Maven进阶多环境配置与应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08

最新评论