客户端多线程向服务端的文件传输
来源:互联网 发布:java异常中的finally 编辑:程序博客网 时间:2024/05/19 01:59
客户端
Cleint.java
public class Client { public static void main(String[] args) { try (Socket socket = new Socket("10.0.179.204", 11000)) { FileInputStream fis = new FileInputStream("src/plant.txt"); InputStream is = socket.getInputStream(); OutputStream os = socket.getOutputStream(); int length; byte[] bytes = new byte[1024]; while((length = fis.read(bytes)) != -1){ os.write(bytes,0,length); } /* * 禁用此套接字的输出流。对于 TCP 套接字,任何以前写入的数据都将被发送,并且后跟 TCP 的正常连接终止序列。 如果在套接字上调用 shutdownOutput() 后写入套接字输出流,则该流将抛出 IOException。否则会出现错误。 * */ socket.shutdownOutput(); byte[] bytes1 = new byte[1024]; int num = is.read(bytes1); System.out.println(new String(bytes1,0,num)); fis.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } }}
客户子线程
UserThread.javapublic class UserThread implements Runnable { private Socket s; public UserThread(Socket s) { this.s = s; } @Override public void run() { try { OutputStream os = s.getOutputStream(); InputStream is = s.getInputStream(); int count=1; File f = new File("d:\\test"+"("+count+")"+".txt");//由于是多个不同的客户端向服务端传送文件,所以要考虑文件重名,导致被覆盖。 while (f.exists()) { f = new File("d:\\test"+"("+ count++ +")"+".txt"); } FileOutputStream fos = new FileOutputStream(f); byte[] bytes = new byte[1024]; int length; while (((length = is.read(bytes)) != -1)) { fos.write(bytes, 0, length); } os.write("成功".getBytes()); fos.close(); s.close(); } catch (IOException e) { e.printStackTrace(); } }}服务端
Server.java
public class Sever { public static void main(String[] args) { try { ServerSocket ss = new ServerSocket(11000); while (true) { Socket s = ss.accept(); new Thread(new UserThread(s)).start(); } } catch(IOException e){ e.printStackTrace(); } }}
0 0
- 客户端多线程向服务端的文件传输
- JavaSocket聊天器<三>多线程客户端向服务端发送信息
- 客户端向服务端发送信息
- java实现的客户端向服务端上传文件的程序
- Linux中客户端向服务端读取时间的简单实现
- asp.net的 服务端向客户端写javascript脚本
- 超级轻量的远程命令行客户端和服务端(含文件传输)
- Win/Mac客户端与Linux/Unix服务端文件传输工具sz/rz的安装与使用
- Java Socket多线程服务端、客户端
- Java Socket多线程服务端、客户端
- java socket 多线程的服务端与客户端的demo
- android 客户端向发服务端传值,服务端是乱码的解决方法
- JAVA 中多线程服务端 多个客户端的实现
- JAVA 中多线程服务端 多个客户端的实现
- Java多线程服务端与客户端的交互小实例
- 如何创建基于socket多线程的客户端和服务端
- 基于Python多线程的TCP客户端/服务端应用示例
- 【Java源码】TCP协议之服务端与客户端文件传输
- BZOJ3526 [Poi2014]Card
- 一次快排
- 2016.08.17【初中部 NOIP提高组 】模拟赛C题解
- #ifndef #define #endif的用法
- n a^o7 !
- 客户端多线程向服务端的文件传输
- java对象与json对象间的相互转换
- angularjs的使用:过滤器(5)
- UVA1386 快速矩阵幂 O(n²logk)
- C++模拟键盘按键
- zzulioj 1918 【二分最大匹配】
- Volatile关键字
- 文件IO操作
- Spark的这些事<三>——spark常用的Transformations 和Actions