sendthread.java

来自「实现简单的远程监控」· Java 代码 · 共 66 行

JAVA
66
字号
package com.cheng;

import java.io.*;
import java.awt.image.BufferedImage;
import java.net.Socket;
import javax.imageio.ImageIO;

//内部类
class SendThread extends Thread
{
     private GuiCamera gc=new GuiCamera("png");
     private OutputStream out=null;
     private Socket socket;
     private BufferedImage image;
     private boolean flag=true;
     //构造函数
     public SendThread(Socket s)
      {
          ThreadInfo.SendIsLive=true;
          flag=true;
          this.socket=s;
        try {
            out = new DataOutputStream(new BufferedOutputStream(socket.
                    getOutputStream()));
        } catch (IOException ex) {
             ThreadInfo.SendIsLive=false;
        }
      }

    //抓图
    public void run()
    {

       while(flag)
        {
            try {

               image=gc.snapShot();
               File file=new File("temp.png");
               FileOutputStream fileout=new FileOutputStream(file);
               ImageIO.write(image,"png",fileout);
               fileout.close();

               FileInputStream fileIn=new FileInputStream(file);
               int len=(int)file.length();

               System.out.println(len);
               byte[] buf=new byte[len];
               fileIn.read(buf,0,len);

               out.write(buf,0,len);
               out.flush();

               Thread.sleep(500);
            } catch (Exception ex) {
                ex.printStackTrace();
                flag=false;
                 ThreadInfo.SendIsLive=false;
            } finally {

            }
        }

    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?