当前位置: 首页 > news >正文

基于Java Socket的文件UpLoad代码

写了份文件对传的简单代码,可以把本地文件夹里的文件传递到Server端。

Server端代码:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class FileUpLoadProjServer extends Thread {

public FileUpLoadProjServer(Socket s, String c) throws IOException {
}

public void run() {
}

public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(8110);
Socket connection = null;
while (true) {
try {
connection = server.accept();
InputStreamReader in = new InputStreamReader(connection
.getInputStream());

long time = System.currentTimeMillis();
String t = "C:\\temp_" + time;
File myFile = null;
if ((new File(t).mkdir())) {
myFile = new File(t + "\\temp.txt");
} else {
System.out.println("Create folder failed!");
}

FileOutputStream fos = new FileOutputStream(myFile);

int ch = 0;

while ((ch = in.read()) != -1) {
System.out.print((char) ch);
fos.write(ch);
}
fos.close();
connection.close();
} catch (IOException ioe) {
System.err.println(ioe);
} finally {
try {
if (connection != null)
connection.close();
} catch (IOException e) {
}
}
}
} catch (IOException ee) {
System.err.println(ee);
}
}
}

Client端代码:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;

public class FileUpLoadProjClient extends Thread {

private Socket socket;
private PrintWriter out;
final int port = 8110;
String path = "C:\\src\\test";

public FileUpLoadProjClient(InetAddress addr) {
try {
socket = new Socket(addr, port);
} catch (IOException e) {

}

try {
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream())), true);
start();
} catch (IOException e) {
try {
socket.close();
} catch (IOException e2) {
}
}
}

public void run() {
try {
File root = new File(path);
String[] colum = root.list();
System.out.println("The file's num is :" + colum.length);

for (int i = 0; i < colum.length; i++) {
System.out.println("The colum's content is :" + colum[i]);
String filePath = path + "\\" + colum[i];
System.out.println("The file's absolutePath is :" + filePath);
FileInputStream fis = new FileInputStream(filePath);
int ch = 0;

while ((ch = fis.read()) != -1) {
System.out.print((char) ch);
out.write(ch);
}
fis.close();
}
out.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

public static void main(String[] args) throws IOException,
InterruptedException {
InetAddress addr = InetAddress.getByName("127.0.0.1");
new FileUpLoadProjClient(addr);
}

}

瞎写的,凑合着用吧。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • python网络爬虫_Python网络爬虫实战(二)数据解析
  • 应用Executors来建立Thread pool
  • 富士通台式电脑_什么是电脑显卡 电脑显卡分类介绍【详解】
  • U盘上安装Damn Small Linux(DSL),让Linux常驻U盘
  • nginx 伪静态404_宝塔LNMP环境 Nginx安装EduSoho教程说明
  • c语言c99标准_C语言第一章《认识C语言》
  • robots.txt
  • java doubke类型转换为String_Java第一周笔记
  • Windows Embedded从入门到精通12月预告
  • 多个app用同一个签名文件_一文教你玩转幕布App
  • dskrdsk的区别
  • 联想杜比音效_联想锐龙入门本上市,强劲R5来了
  • 回忆Solaris_ 学习笔记1 [网络地址和掩码]
  • 边缘计算应用场景_边缘计算盒子有什么作用?博时特EC01 边缘计算盒子具体特征及应用场景来了...
  • 回忆Solaris_学习笔记2 [系统概念]
  • 时间复杂度分析经典问题——最大子序列和
  • [译] React v16.8: 含有Hooks的版本
  • 【comparator, comparable】小总结
  • Github访问慢解决办法
  • GitUp, 你不可错过的秀外慧中的git工具
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • java中具有继承关系的类及其对象初始化顺序
  • leetcode-27. Remove Element
  • Linux链接文件
  • Redis在Web项目中的应用与实践
  • Spring Cloud中负载均衡器概览
  • 聊一聊前端的监控
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 入门到放弃node系列之Hello Word篇
  • 正则与JS中的正则
  • 【云吞铺子】性能抖动剖析(二)
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • puppet连载22:define用法
  • ​520就是要宠粉,你的心头书我买单
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​VRRP 虚拟路由冗余协议(华为)
  • !$boo在php中什么意思,php前戏
  • # SpringBoot 如何让指定的Bean先加载
  • #HarmonyOS:Web组件的使用
  • (1)bark-ml
  • (2)(2.10) LTM telemetry
  • (C#)获取字符编码的类
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (八)Spring源码解析:Spring MVC
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (二)WCF的Binding模型
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (九)信息融合方式简介
  • (转)jdk与jre的区别
  • .a文件和.so文件
  • .Net 4.0并行库实用性演练
  • .Net Core 中间件与过滤器
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...