package io.socket;import java.io.DataInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class FileServer {private static String savePath = "e:\\";private static void receiveFile(Socket socket) {byte[] buffer = new byte[1024];try (DataInputStream dis = new DataInputStream(socket.getInputStream())) {// 读取文件名长度int len = dis.readShort();// 读取文件名dis.readFully(buffer, 0, len);String fileName = new String(buffer, 0, len, "UTF-8");// 建立输出文件try (FileOutputStream fos = new FileOutputStream(savePath = fileName)) {// 读取文件长度len = dis.readInt();while (len > 0) {int rlen = dis.read(buffer);if (rlen == -1) {break;}fos.write(buffer, 0, rlen);len -= rlen;}}socket.close();} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {System.out.println("start file server");try (ServerSocket echoServer = new ServerSocket(8000)) {while (true) {Socket clientSocket = echoServer.accept();// 阻塞System.out.println(clientSocket.getRemoteSocketAddress() + " connect!" + System.currentTimeMillis());// 调用receiveFile方法接收文件new Thread(() -> { receiveFile(clientSocket); }).start();}} catch (IOException e) {System.out.println(e);}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。