簡體   English   中英

Java-通過套接字傳輸時,可序列化映像為黑色

[英]Java - Serializable Image is black when transferred over sockets

我正在通過Java中的套接字發送圖像,並且當客戶端和服務器都在一台計算機上時,一切都很好,但是當我通過LAN運行圖像時,結果圖像為黑色。 我使用Robot類拍攝屏幕圖像,然后使用AffineTransform縮小圖像。 客戶代碼:

        BufferedImage s = null;
        socket = new Socket("AJ-PC", 4444);
        out = new ObjectOutputStream(socket.getOutputStream());
        Robot r = new Robot();
        while(true) {
              s = r.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
              double scale = 0.75;
              int w = (int) (s.getWidth() * scale);
              int h = (int) (s.getHeight() * scale);
              BufferedImage outImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);                
              AffineTransform trans = new AffineTransform();
              trans.scale(scale, scale);
              Graphics2D g = outImage.createGraphics();
              g.drawImage(s, trans, null);
              g.dispose();
              Thread.sleep(400);
              out.writeObject(new SerializableImage(outImage));
       }

服務器代碼:

        server = new ServerSocket(4444);
        socket = server.accept();
        System.out.println(socket);
        in = new ObjectInputStream(socket.getInputStream());
        while(running) {
            bi = (SerializableImage) in.readObject();
            b = true;
            System.out.println("new");
            panel.repaint();
        }

我正在使用http://technet.microsoft.com/zh-cn/sysinternals/bb897553.aspx中的PsExec實用程序,這似乎是問題所在。 當我不使用它遠程執行時,它運行良好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM