基于TCP文件传输(Java)
来源:互联网 发布:双网卡路由器共享网络 编辑:程序博客网 时间:2024/05/21 18:49
//服务器端 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.net.ServerSocket; import java.net.Socket; //使用TCP协议写一个可以上传文件的服务器和客户端。 public class UpLoad { public static void main(String[] args) throws Exception { ServerSocket ss = new ServerSocket(3000); Socket socket = ss.accept(); new Thread(new Receive(socket)) { }.start(); } } class Receive implements Runnable { private Socket socket; public Receive(Socket socket) { this.socket = socket; } public void run() { try { BufferedInputStream bis = new BufferedInputStream(socket .getInputStream()); byte[] bFileName = new byte[255]; int len = bis.read(bFileName); String fileName = new String(bFileName, 0, len).trim(); byte[] bytes = new byte[1024]; FileOutputStream fos = new FileOutputStream("d://" + fileName); BufferedOutputStream bos = new BufferedOutputStream(fos); len = 0; while ((len = bis.read(bytes)) != -1) { bos.write(bytes, 0, len); } bos.close(); fos.close(); bis.close(); socket.close(); } catch (Exception e) { e.printStackTrace(); } } } //客户端:import java.io.BufferedOutputStream; public class UpLoadClient { public static void main(String[] args) throws Exception { BufferedReader br = null; String path = null; String fileName = null; String ip = null; while (true) { System.out.println("请输入文件路径:"); br = new BufferedReader(new InputStreamReader(System.in)); path = br.readLine(); File file = new File(path); fileName = path.substring(path.lastIndexOf("//") + 1); if (file.isDirectory() || !file.exists()) System.out.println("路径不正确!"); else break; } System.out.println("请输入服务器地址:"); br = new BufferedReader(new InputStreamReader(System.in)); ip = br.readLine(); System.out.println("确认上传:" + path + "文件吗(y/n)?"); br = new BufferedReader(new InputStreamReader(System.in)); String result = br.readLine(); if ("n".equalsIgnoreCase(result)) { br.close(); return; } Socket socket = new Socket(ip, 3000); FileInputStream fs = new FileInputStream(path); byte[] bytes = new byte[1024]; BufferedOutputStream bos = new BufferedOutputStream(socket .getOutputStream()); while (true) { if (fileName.getBytes().length < 255) fileName += "/u0000"; else break; } bos.write(fileName.getBytes()); bos.flush(); int len = 0; while ((len = fs.read(bytes)) != -1) { bos.write(bytes, 0, len); } bos.close(); fs.close(); br.close(); socket.close(); System.out.println("文件上传完毕!"); } }
0 0
- 基于TCP文件传输(Java)
- Java 网络编程之 (基于 TCP 的远端文件传输)
- java学习:基于TCP的网络文件传输(可改写的QQ文件传输)
- 基于TCP的文件传输
- 基于TCP的文件传输
- 基于TCP的文件传输
- 基于TCP的文件传输
- tcp udp实现文件传输(java)
- Java TCP 文件传输问题
- 网络编程 基于TCP的多文件传输程序(二)
- TCP文件传输(一)
- Linux 基于TCP/IP的文件传输系统
- Linux下基于TCP的文件传输
- 基于TCP协议简单的文件传输
- Linux下基于TCP的文件传输
- Qt:基于TCP的多线程文件传输工具
- Java基于Socket文件传输示例
- Java基于Socket文件传输示例
- 第九周-项目3-分数类的运算符重载
- 第九周项目2
- Android手机嵌入式驱动开发课程教程
- Python: 设计模式 之 工厂模式例(1)
- ajax 异步封装-函数 javascript原生
- 基于TCP文件传输(Java)
- Nyoj 寻找最大数 448
- 指针数组&数组指针
- 集合的常用用法
- 2014 年 15 款新评定的最佳 PHP 框架
- mysql将一个表中的字段值更新到另一个表中指定字段中
- Win Server 2008下不是Asp.net遇到的问题
- 回车键默认提交表单的那些事
- IOS文件路径处理方法