《服务器之间的图片传输 2023-12-19》模拟一台服务器(client)给另外一台服务(server)传输图片

发布时间:2023年12月19日

Server

public class PictureTestServer {
    public static void main(String[] args) {
        try (ServerSocket serverSocket = new ServerSocket(0)) {
            System.out.println("服务器已启动,监听端口: " + serverSocket.getLocalPort());
            Socket socket = serverSocket.accept();

            // 读取图片文件
            File file = new File("F:/picture/client/water.webp");
            try (FileInputStream fileInputStream = new FileInputStream(file);
                 DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream())) {

                byte[] buffer = new byte[(int) file.length()];
                fileInputStream.read(buffer);

                // 发送图片文件到客户端
                dataOutputStream.write(buffer, 0, buffer.length);

                System.out.println("图片发送成功");
            }

            // 关闭套接字
            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Client

public class PictureTestClient {
    public static void main(String[] args) {
        try {
        // 该端口为Server启动后监听的端口
            Socket socket = new Socket("localhost", 50966);

            // 从服务器接收图片文件
            InputStream inputStream = socket.getInputStream();
            FileOutputStream fileOutputStream = new FileOutputStream("F:/picture/server/water.webp");

            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                fileOutputStream.write(buffer, 0, bytesRead);
            }

            System.out.println("图片接收成功");

            // 关闭流和套接字
            fileOutputStream.close();
            inputStream.close();
            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

先启动Server监听端口,获取到的端口替换掉Client端口,再启动Client端口
在这里插入图片描述
在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_44976692/article/details/135084386
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。