客户端
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();
}
}
注意flush
服务端
public class server {
public static void main(String[] args) throws IOException {
ServerSocket socket = new ServerSocket(10000);
Socket accept = socket.accept();
InputStream inputStream = accept.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);
}
// bis.close(); // 关闭 BufferedInputStream
bos.flush(); // 刷新 BufferedOutputStream
// bos.close(); // 关闭 BufferedOutputStream
OutputStream outputStream = accept.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(outputStream));
bw.write("上传成功");
bw.flush();
// outputStream.write("接收成功".getBytes());
// outputStream.flush();
// outputStream.close();
accept.close();
socket.close();
}
}