Java Обработка изображений клиент-сервер - PullRequest
0 голосов
/ 23 апреля 2020

Я пытался выяснить и искать ответы о том, как это сделать в течение нескольких дней.

У меня есть клиент, который отправляет изображение, которое вы выбираете из FileChooser. Он должен отправить его на сервер, а сервер должен сообщить вам, что это сделано, и ширину / высоту изображения.

Клиент

private void connect() {
      try {
         socket = new Socket(serverIP.getText(), SERVER_PORT);
         dis = new DataInputStream(socket.getInputStream());
         dos = new DataOutputStream(socket.getOutputStream());

      }
      catch(IOException ioe) {
         taLog.appendText("IO Exception: " + ioe + "\n");
         return;
      }

}

private void send() {
      try {
         fileChooser.getExtensionFilters().addAll(
            new FileChooser.ExtensionFilter("Images", "*.jpg")
            ,new FileChooser.ExtensionFilter("Images", "*.jpeg")
         );

         File imgFile = fileChooser.showOpenDialog(stage);

         BufferedImage bimg = ImageIO.read(imgFile);

         ByteArrayOutputStream baos = new ByteArrayOutputStream();

         ImageIO.write(bimg, "JPG", baos);
         baos.flush();
         byte[] b = baos.toByteArray();
         baos.close();

      }
      catch(Exception e) {
         taLog.appendText("Exception: " + e + "\n");
      }
      disconnect();

}

Сервер

public void sv_work() {
      try {
         sSocket = new ServerSocket(SERVER_PORT);
      }
      catch(IOException ioe) {
         taLog.appendText("IO Exception: "+ ioe);
         return;
      }

      Socket cSocket = null;
      while(true) {
         try {
            cSocket = sSocket.accept();
            taLog.appendText("Client connected!\n");
            in = new DataInputStream(cSocket.getInputStream());
            out = new DataOutputStream(cSocket.getOutputStream());

            BufferedImage bimg = ImageIO.read();

            System.out.println(bimg.getWidth());
            System.out.println(bimg.getHeight());


         }
         catch(IOException ioe) {
            taLog.appendText("IO Exception: "+ ioe);
            return;
         }

         try {
            cSocket.close();
            in.close();
            out.close();
         }
         catch(Exception e) {
            taLog.appendText("Exception: " + e + "\n");
         }
      }
   }  

Как мне поступить? Я думаю, что я закончил с клиентом. Но не знаю, что мне нужно сделать с BufferedImage bimg = ImageIO.read(), что идет в параметре, и после этого.

...