组播实现UDP远程桌面.doc
文本预览下载声明
组播实现UDP远程桌面
组播实现UDP远程桌面?服务端:package multiCast;import java.awt.Dimension;import java.awt.Graphics2D;import java.awt.Rectangle;import java.awt.RenderingHints;import java.awt.Robot;import java.awt.Toolkit;import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;import java.net.DatagramPacket;import java.net.InetAddress;import java.net.MulticastSocket;import javax.imageio.ImageIO;public class MultiCastServer extends Thread {? ? ? private static int portTem = 9999;//?端口号? ? ? private static String mutiAddr = 230.0.0.1;//?组播IP地址? ? ? private InetAddress inetAddress; //?组播消息的目标地址,及发送人的地址? ? ? private MulticastSocket multicastSocket; //?组播发送端套接字? ? ? private Robot robot; // robot用于获得本地图片? ? ? public MultiCastServer() {? ? ? ? ? ? ? try {? ? ? ? ? ? ? ? ? ? inetAddress = InetAddress.getByName(mutiAddr);//?从组播地址中获得具体的发送者的地址? ? ? ? ? ? ? ? ? ? multicastSocket = new MulticastSocket();? ? ? ? ? ? ? } catch (Exception e) {? ? ? ? ? ? ? ? ? ? e.printStackTrace();? ? ? ? ? ? ? ? ? ? // TODO: handle exception? ? ? ? ? ? ? }? ? ? }? ? ? public void run() {? ? ? ? ? ? ? Dimension size = Toolkit.getDefaultToolkit().getScreenSize(); //?获得屏幕大小? ? ? ? ? ? ? Rectangle rec = new Rectangle(0, 0, (int) size.getWidth(), (int) size? ? ? ? ? ? ? ? ? ? ? ? ? ? .getHeight()); //?画一个窗体? ? ? ? ? ? ? try {? ? ? ? ? ? ? ? ? ? while (true) {? ? ? ? ? ? ? ? ? ? ? ? ? ? //?抓取一张屏幕图片? ? ? ? ? ? ? ? ? ? ? ? ? ? robot = new Robot();? ? ? ? ? ? ? ? ? ? ? ? ? ? BufferedImage image = robot.createScreenCapture(rec);//?把屏幕图片放入BufferedImage中? ? ? ? ? ? ? ? ? ? ? ? ? ? BufferedImage littleimage = resize(image,600,500);? ? ? ? ? ? ? ? ? ? ? ? ? ? ByteArrayOutputStream bout = new ByteArrayOutputStream(); //?定义一个比特数组输出流,用来发送上面获得的图片? ? ? ? ? ? ? ? ImageIO.write(littleimage, jpeg, bout); //?调用ImageIO把? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //?图片以JPEG的形式写入到bout输出流中? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ?
显示全部