public class client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("127.0.0.1", 10000);
//获取本地文件
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("C:\\Users\\lin\\Desktop\\光辉胖脸.jpg"));
OutputStream outputStream = socket.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(outputStream);
byte[] bytes = new byte[1024];
int len;
while ((len = bis.read(bytes)) != -1) {
bos.write(bytes, 0, len);
}
bos.flush();
socket.shutdownOutput();
//接收服务回显
InputStream inputStream = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(inputStream);
BufferedReader bis2 = new BufferedReader(isr);
String s = bis2.readLine();
System.out.println(s);
socket.close();
}
}
服务端
public class server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(10000);
//创建线程池
ThreadPoolExecutor pool = new ThreadPoolExecutor(
3,
7,
60,
TimeUnit.SECONDS,
new ArrayBlockingQueue<>(2),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.AbortPolicy()
);
while (true){
Socket socket = serverSocket.accept();
pool.submit(new Myrunable(socket));
}
}
}
线程
package org.example.net.tcp.demo3;
import java.io.*;
import java.net.Socket;
import java.util.UUID;
public class Myrunable implements Runnable{
Socket socket;
public Myrunable(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
try {
InputStream inputStream = socket.getInputStream();
BufferedInputStream bis = new BufferedInputStream(inputStream);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:\\"+ UUID.randomUUID().toString().replace("-","")+".jpg"));
int b;
byte[] bytes = new byte[1024];
while ((b = bis.read(bytes)) != -1) {
bos.write(bytes, 0, b);
}
bos.flush(); // 刷新 BufferedOutputStream
OutputStream outputStream = socket.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(outputStream));
bw.write("上传成功");
bw.flush();
bos.close();
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
if (socket!=null){
try {
socket.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}
}