文档:https://shimo.im/docs/uGNb91Je9cIGOBoP
package wlbc;
import java.io.*;
import java.net.Socket;
public class tcc6 {
public static void main(String[] args) throws IOException {
Socket s = new Socket("192.168.0.126",10000);
// 键盘录入
// BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedReader br = new BufferedReader(new FileReader("stu\\src\\wlbc\\tcc3.java"));
// 封装输出流对象
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String line;
while ((line = br.readLine()) != null){
// 发送数据
/*OutputStream os = s.getOutputStream();
os.write(line.getBytes());*/
bw.write(line);
bw.newLine();
bw.flush();
}
s.shutdownOutput();
// 接收反馈
BufferedReader brr = new BufferedReader(new InputStreamReader(s.getInputStream()));
String data = brr.readLine();
System.out.println(data);
// br.close();
// bw.close();
s.close();
}
}
package wlbc;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class tcs6 {
public static void main(String[] args) throws IOException {
// 创建服务socket对象
ServerSocket ss = new ServerSocket(10000);
while(true) {
// 监听客户端连接
Socket s = ss.accept();
// 为每一个客户端开启一个县城
new Thread(new ServerThread(s)).start();
}
}
}
package wlbc;
import java.io.*;
import java.net.Socket;
public class ServerThread implements Runnable {
private Socket s;
public ServerThread(Socket s) {
this.s = s;
}
@Override
public void run() {
// 接收数据写到文本
try {
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
// BufferedWriter bw = new BufferedWriter(new FileWriter("stu\\copy.java"));
// 解决名称冲突问题
int count = 0;
File file = new File("stu\\copy["+count+"].java");
while(file.exists()){
count++;
file = new File("stu\\copy["+count+"].java");
}
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
String line;
while ((line = br.readLine()) != null){
bw.write(line);
bw.newLine();
bw.flush();
}
// 给出反馈
BufferedWriter bwserver = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bwserver.write("文件上传成功");
bwserver.newLine();
bwserver.flush();
// 释放资源
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}