java socket 传输压缩文件_java基于socket传输zip文件功能示例

本文实例讲述了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程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/332788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css的学习

文章目录内联样式内部样式外部样式CSS语法格式选择器基本选择器ID 选择器元素选择器类选择器不带标签名带标签名通用选择器并集选择器选择器的优先级扩展选择器组合选择器属性选择器伪类选择器伪元素选择器css 是 Cascading Style Sheets,层叠样式表。 层叠含义是多…

java throws catch_java异常处理throws throw try-catch实例

java异常处理throws throw try-catch实例。throw用于方法中&#xff0c;我们可以预见的错误。比如&#xff1a;if(age<0){Exception e new Exception();//创建异常对象throw e;//抛出异常}在java代码中如果发生异常的话&#xff0c;jvm会抛出异常对象&#xff0c;导致程序代…

java 开发人员工具_每个Java开发人员都应该知道的10个基本工具

java 开发人员工具大家好&#xff0c;我们已经到了2019年的第二个月&#xff0c;我相信你们所有人都已经制定了关于2019年学习以及如何实现这些目标的目标。 我一直在撰写一系列文章&#xff0c;为您提供一些知识&#xff0c;使您可以学习和改进以成为2019年更好的全方位开发人…

SpringBoot2.x+mybatis plus3.x集成Activit7版本

文/朱季谦 在Activiti6版本当中&#xff0c;若要集成到Springboot里&#xff0c;需要写一些额外的配置类&#xff0c;我曾经在Activiti工作流框架学习笔记&#xff08;二&#xff09;之springboot2.0整合工作流Activiti6.0一文当中总结过相关配置过程&#xff0c;感兴趣的同学…

camel apache_Apache Camel 3的工作终于开始了

camel apache我们正在开始Apache Camel 3的工作。 我们正在多方面努力改善骆驼并引入新功能。 Guillaume Nodet实际上是在10月初开始了第一项工作&#xff0c;他通过清理代码库&#xff0c;删除不推荐使用的代码和组件&#xff0c;改进了路由引擎和核心中的其他内部组件开始了…

(前端开发)表格中的行全选、全不选、反选以及数据行背景色变换的示例代码

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>表格数据行全选/全不选/反选的示例</title><style>table {border: 1px solid;width: 500px;margin-left: 30%;}th, td {text-align: cente…

future java 多线程_Java多线程之Future与FutureTask

一&#xff1a;Future在使用实现Callable创建线程时&#xff0c;call()方法是有返回值的。那么&#xff0c;我们在编程时用什么来代表这个 线程执行后才能返回的未来结果 呢&#xff1f;那就是 Future类型。顾名思义&#xff0c;Future——未来值&#xff0c;我们用这个未来值来…

switch字符串jdk_从JDK 12删除原始字符串文字

switch字符串jdk已经提出从JDK 12中删除原始字符串文字&#xff08;预览&#xff09; &#xff08;它将在12月13日进入Rampdown第一阶段 &#xff09;。 Brian Goetz撰写了删除此预览功能的动机的详细说明 &#xff08; JEP 326 &#xff09;。 在Java subreddit上也对此进行了…

win7旗舰版安装不了python_怎样在Win7 64位旗舰版安装Python+Eclipse开发环境

自从上周抛弃了WinXP转而安装了Win7&#xff0c;64位后&#xff0c;尝试安装PythonEclipse遇到了一点小问题。现在已经解决&#xff0c;将安装顺序记录如下&#xff0c;供参考。Setp1&#xff0c;到ORACLE网站下载64位的JDK。http://www.oracle.com/technetwork/java/javase/do…

MacOS下的取色器/拾色器推荐

文章目录ColorSnapper2ColorSlurp 不错&#xff0c;App Store 可以下载SipChromaColor PickerPixeur&#xff08;推荐&#xff09;操作说明ColorSnapper2 ColorSlurp 不错&#xff0c;App Store 可以下载 Sip Chroma Color Picker Pixeur&#xff08;推荐&#xff09; 体…

查看oracle会话和进程_带有Oracle Digital Assistant和Fn Project的会话式UI

查看oracle会话和进程在这里和那里&#xff0c;我们看到了无数的预测&#xff0c;很快聊天机器人将在用户与其系统之间的通信中扮演关键角色。 我没有水晶球&#xff0c;也不想等待这个“很快”&#xff0c;所以我决定现在就使这些预言成真&#xff0c;看看它是什么样。 我正在…

设置 input元素placeholder的字体颜色

placeholder 属性提供可描述输入字段预期值的提示信息&#xff08;hint&#xff09;。 该提示会在输入字段为空时显示&#xff0c;并会在字段获得焦点时消失。 placeholder 属性适用于以下的 <input> 类型&#xff1a;text, search, url, telephone, email 以及 passwo…

网页益智游戏怎么制作_休息一下,或者:如何使用Java 12制作出色的益智游戏...

网页益智游戏怎么制作Java 12以实验形式提供了switch表达式以及switch和break语句的新形式。 对于可能很少用到的构造&#xff0c;有大量的新语法和语义-当然&#xff0c;对于那些困惑者和认证考试问题的作者来说&#xff0c;这是一件了不起的礼物。 如果您喜欢Java拼图游戏&am…

java aes 解密 文件_Java AES文件加解密

转自&#xff1a;http://www.webtag123.com/java/4049.htmlAESUtils.javapackage demo.security;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.security.Key;imp…

JavaScript(JS)的习惯写法总结

//取整 parseInt(a,10); //Before Math.floor(a); //Before a>>0; //Before ~~a; //After a|0; //After//四舍五入 Math.round(a); //Before a.5|0; //After//内置值 undefined; //Before void 0; //After, 快 0[0]; //After, 略慢//内置值 Infinity; 1/0;//布尔值短写法…

java模拟连接超时_Java:使用Toxiproxy模拟各种连接问题

java模拟连接超时用Toxiproxy和Java的HttpURLConnection模拟各种连接问题&#xff0c;以查看产生了什么样的错误&#xff1a;连接超时vs.读取超时vs.连接被拒绝…。 结果&#xff1a; 系统&#xff1a;openjdk 11.0.1 2018-10-16 (.setConnectTimeout 1) > java.net.Socke…

java中的僵死进程_Java中线程间怎么通讯?什么叫僵死线程?

《尸家保镖》 《猛鬼出千》 《不死心灵》 《大家发财》 《灵幻少女》 《九天玄女》 《僵尸至尊》 《湘西尸王》 《尸前想后》 《魔高一丈》 《一世好命》 《妖兽尸王》 《人蝎大战》 《星际钝胎》 《艳女还魂》 《邪完再邪》 《艳鬼山坟》 《尸破今天阳光很好&#xff0c;坐在窗…

正则表达式中的分组的匹配次数的理解

正则表达式&#xff1a;/((\d){1,6})/ 这个正则表达式可以匹配任意数量的数字。 限定符 指的是前面的子表达式 (\d){1,6} 可以出现 1 次或者多次&#xff0c;所以如果是贪婪匹配&#xff0c;每次迭代匹配的数字个数可以超过 6 个&#xff08;即 ≥1&#xff09;&#xff1b;如…

aws使用技巧_AWS:避免那些“神圣的法案”时刻的一些技巧

aws使用技巧云非常棒&#xff1a;几乎100&#xff05;的可用性&#xff0c;接近零的维护&#xff0c;按需付费&#xff0c;最重要的是&#xff0c;它具有无限的可扩展性。 但是最后两个很容易把你咬回去&#xff0c;把那令人敬畏的事情变成一场噩梦。 偶尔您会看到类似的故事…

JAVA类和对象访问_Java类和对象

一、类类是封装对象的属性和行为的载体&#xff0c;在Java语言中对象的属性以成员变量的形式存在&#xff0c;而对象的方法以成员方法的形式存在。1. 类的构造方法构造方法是一个与类同名的方法&#xff0c;对象的创建就是通过构造方法完成的&#xff0c;构造方法分为有参构造方…