• [JAVA]Socket 图片流的传输


    import java.io.DataInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class Server {
        public static void main(String[] args) {
            System.out.println("--->server");
            try {
                ServerSocket server = new ServerSocket(4700);
                Socket socket = server.accept();
                DataInputStream dis = new DataInputStream(socket.getInputStream());
                String type = dis.readUTF();
                System.out.println("type: " + type);
    
                // long len = dis.readLong();
                // System.out.println("len: " + len);
    
                byte[] buff = new byte[1024];
                OutputStream os = new FileOutputStream("C:/Users/Administrator/Desktop/dts.jpg");
                int len = -1;
                while ((len = dis.read(buff)) != -1) {
                    os.write(buff, 0, len);
                }
                os.flush();
                os.close();
                dis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println("server--->");
        }
    }
    import java.io.DataOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.net.Socket;
    
    public class Client {
        public static void main(String args[]) {
            try {
                Socket socket = new Socket("127.0.0.1", 4700);
                if (socket.isConnected()) {
                    System.out.println("isConnected");
                    DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
                    dos.writeUTF("STREAM");
                    File file = new File("C:/Users/Administrator/Desktop/src.jpg");
                    // dos.writeLong(file.length());
                    byte[] buff = new byte[1024];
                    InputStream inputStream = new FileInputStream(file);
                    int len = -1;
                    while ((len = inputStream.read(buff)) != -1) {
                        dos.write(buff, 0, len);
                    }
                    inputStream.close();
                    dos.flush();
                    dos.close();
                }
                // socket.close(); // 关闭Socket
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    【C++】Lambda表达式
    使用velodyne16线激光雷达跑loam-velodyne
    IMU(LPMS-B2) ROS下使用教程
    【C++】关键字inline
    OpenCV中feature2D——BFMatcher和FlannBasedMatcher
    CUDA 编程
    进程(process)和线程(thread)的区别
    【C++】源自指针的报错
    【C++】如何接收函数return返回来的数组元素
    远程访问服务器tensorboard
  • 原文地址:https://www.cnblogs.com/afluy/p/3815695.html
Copyright © 2020-2023  润新知