TCP数据传输(七):多线程改进多个客户端上传文件案例
来源:互联网 发布:奥飞娱乐怎么样 知乎 编辑:程序博客网 时间:2024/04/28 01:10
TCP数据传输(七):多线程改进多个客户端上传文件案例
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class UserThread implementsRunnable {
privateSocket s;
publicUserThread(Socket s) {
this.s= s;
}
@Override
publicvoid run() {
try{
//封装通道内的流
BufferedReaderbr = new BufferedReader(new InputStreamReader(
s.getInputStream()));
//封装文本文件
//BufferedWriter bw = new BufferedWriter(new
//FileWriter("Copy.java"));
//为了防止名称冲突
StringnewName = System.currentTimeMillis() + ".java";
BufferedWriterbw = new BufferedWriter(new FileWriter(newName));
Stringline = null;
while((line = br.readLine()) != null) { // 阻塞
bw.write(line);
bw.newLine();
bw.flush();
}
//给出反馈
BufferedWriterbwServer = new BufferedWriter(
newOutputStreamWriter(s.getOutputStream()));
bwServer.write("文件上传成功");
bwServer.newLine();
bwServer.flush();
//释放资源
bw.close();
s.close();
}catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public classUploadServer {
public static void main(String[] args)throws IOException {
// 创建服务器Socket对象
ServerSocketss = newServerSocket(11111);
while (true) {
Sockets = ss.accept();
new Thread(new UserThread(s)).start();
}
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
public classUploadClient {
public static void main(String[] args)throws IOException {
// 创建客户端Socket对象
Sockets = newSocket("192.168.12.92", 11111);
// 封装文本文件
// BufferedReader br = new BufferedReader(newFileReader(
// "InetAddressDemo.java"));
BufferedReaderbr = newBufferedReader(newFileReader(
"ReceiveDemo.java"));
// 封装通道内流
BufferedWriterbw = newBufferedWriter(newOutputStreamWriter(
s.getOutputStream()));
Stringline = null;
while ((line = br.readLine())!=null){ // 阻塞
bw.write(line);
bw.newLine();
bw.flush();
}
// Socket提供了一个终止,它会通知服务器你别等了,我没有数据过来了
s.shutdownOutput();
// 接收反馈
BufferedReaderbrClient = newBufferedReader(newInputStreamReader(
s.getInputStream()));
Stringclient = brClient.readLine(); // 阻塞
System.out.println(client);
// 释放资源
br.close();
s.close();
}
}
- TCP数据传输(七):多线程改进多个客户端上传文件案例
- 网络编程_多线程改进多个客户端上传文件案例
- 网络编程-多线程改进客户端上传文件
- TCP数据传输(四):上传文件操作(将客户端的文件发送到服务器)
- TCP文件上传案例
- 多线程TCP文件上传
- 服务端利用多线程TCP同时接受多个客户端发送文件
- Java网络编程一个基础案例分析,基于TCP协议的客户端上传文件给服务器端(单线程版)
- 实现上传(增删)多个文件的客户端写法。
- 实现上传(增删)多个文件的客户端写法。
- 多线程实现文件(图片)从客户端并行上传到服务器端--多客户端实现文件上传到服务器
- c/s练习——多个客户端上传图片到服务端(tcp)
- TCP通信附带文件上传案例
- (二)用多线程管理TCP多个客户端连接服务器
- {网络编程}和{多线程}应用:基于TCP协议【实现多个客户端发送文件给一个服务器端】--练习
- 七牛客户端上传图片文件
- Tcp:上传图片升级版(满足多个客户端同时上传)(加入线程了)(自编)
- Struts2学习篇(七) 上传任意多个文件
- HDU 2188 悼念512汶川大地震遇难同胞——选拔志愿者(巴什博奕)
- stringWithFormat和stringWithString有什么区别
- 蓝牙技术简介
- mysql数据库表清空后id如何从1开始自增
- hadoop Apache版本的启动命令
- TCP数据传输(七):多线程改进多个客户端上传文件案例
- fedora23 安装vsftpd
- Android项目中的各个模块框架设计
- python爬虫:案例一:360指数
- 游戏中的角色类
- Android蓝牙开发简介
- SQL/POSTGIS 使用函数实现ST_Intersects
- (水)POJ-3262 贪心,背包,比率问题
- C#流程控制2