-
服务器端
public class Homework03Server {
public static void main(String[] args) throws IOException {
// 接收文件名, 从磁盘中找到该文件发过去
// 监听 9999
ServerSocket serverSocket = new ServerSocket(9999);
System.out.println("开始监听端口 9999 ");
// 通过 ServerSocket 获取 socket
Socket socket = serverSocket.accept();
// 接收字符串
InputStream inputStream = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String filePath = reader.readLine();
// 找该文件
File file = new File(filePath);
BufferedInputStream bis;
BufferedOutputStream bos;
if (file.exists()) {
// 该路径文件若存在, 发过去
bis = new BufferedInputStream(new FileInputStream(file));
bos = new BufferedOutputStream(socket.getOutputStream());
byte[] buf = new byte[1024];
int read;
while ((read = bis.read(buf)) != -1) {
bos.write(buf, 0, read);
}
} else {
// 该路径文件若不存在, 发一个默认文件过去
filePath = "d:\\default.mp4";
file = new File(filePath);
bis = new BufferedInputStream(new FileInputStream(file));
bos = new BufferedOutputStream(socket.getOutputStream());
byte[] buf = new byte[1024];
int read;
while ((read = bis.read(buf)) != -1) {
bos.write(buf, 0, read);
}
}
socket.getOutputStream();
System.out.println("服务器端发送完毕... ");
// 关闭资源
bos.close();
bis.close();
reader.close();
socket.close();
serverSocket.close();
}
}
-
客户端
public class Homework03Client {
public static void main(String[] args) throws IOException {
// 发送文件名, 然后接收文件
// 设置 IP 和端口号
Socket socket = new Socket("192.168.1.4", 9999);
// 发送字符串
OutputStream outputStream = socket.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream));
writer.write("d:\\123.mp");
writer.newLine();
writer.flush();
// 接收发过来的视频并写入 src
InputStream inputStream = socket.getInputStream();
String filePath = "src\\video.mp4";
BufferedInputStream bis = new BufferedInputStream(inputStream);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
byte[] buf = new byte[1024];
int read;
while ((read = bis.read(buf)) != -1) {
bos.write(buf, 0, read);
}
socket.getInputStream();
// 关闭资源
bos.close();
bis.close();
writer.close();
socket.close();
}
}