Aprite il vostro editor di testo preferito , e immediatamente salvare il documento vuoto come " ScreenServer.java . " Questa è la parte del programma che deve essere eseguito sul sistema remoto . Si rimane in attesa di una connessione su una porta arbitraria e inviare le dimensioni dello schermo e dati su quella porta. Questo esempio utilizza " 5494 ", come il porto , ma qualsiasi numero di porta farà , a condizione che non sia in conflitto con un altro servizio in esecuzione sul computer . Naturalmente , avrete bisogno di avere accesso diretto al computer remoto a un certo punto , al fine di mettere questo programma su di esso e rimetterlo in esecuzione
2
Incollare il codice riportato di seguito nel " ScreenServer " : .
import java.net * , .
import java.awt * , .
import java.awt.Image * , .
importazione java.io . * ;
importazione javax.imageio.ImageIO ;
public class ScreenServer {
public static void main (String [] args ) throws Exception {
robot robot = new robot ( ) ;
schermo BufferedImage
;
while (true ) {
ServerSocket server = new ServerSocket ( 5494 ) ;
Socket client = server.accept ();
dimensione Rectangle = new Rectangle ( Toolkit.getDefaultToolkit ( ) getScreenSize () . ) ; schermo
= robot.createScreenCapture ( size);
int [ ] rgbData = new int [ ( int ) ( size.getWidth ( ) * size.getHeight ( ) ) ] ;
screen.getRGB ( 0,0 , ( int ) size.getWidth ( ) , ( int ) size.getHeight ( ) , rgbData , 0 , ( int ) size.getWidth ());
OutputStream baseOut = client.getOutputStream ();
ObjectOutputStream out = new ObjectOutputStream ( baseOut ) ;
ImageIO.write ( schermo , " png " , new File ( " orig_screen.png "));
out.writeObject ( size);
for (int x = 0; x < rgbData.length ; x + + ) codice.
3
Aprire un nuovo documento in un editor di testo , e il nome " ScreenClient.java . " Questo è il programma che verrà eseguito in locale . Si collega semplicemente al computer remoto all'indirizzo specificato e salva i dati dei pixel che riceve per il disco rigido in formato PNG
4
Incollare il codice riportato di seguito e salvare il lavoro : .
import java.net * , .
import java.awt * , .
import java.awt.Image * , .
import java.io. * ;
importazione javax.imageio.ImageIO ;
public class ScreenClient {
public static void main ( String [] args ) throws Exception {
Server Socket
= new Socket ( args [ 0 ] , 5494 ) ;
ObjectInputStream in = new ObjectInputStream ( server.getInputStream ());
size = Rettangolo ( Rectangle) in.readObject ( ) ;
int [ ] rgbData = new int [ ( int ) ( size.getWidth ( ) * size.getHeight ( ) ) ] ;
for (int x = 0; x < rgbData.length , x + + ) {
rgbData [ x ] = in.readInt (); }
in.close ();
server.close ( ) ;
schermo BufferedImage = new BufferedImage ( ( int ) size.getWidth ( ) , ( int ) size.getHeight ( ) , BufferedImage.TYPE_INT_ARGB ) ;
screen.setRGB ( 0,0 , (int ) size.getWidth ( ) , ( int ) size.getHeight ( ) , rgbData , 0 , ( int ) size.getWidth ());
ImageIO.write ( schermo , " png " , nuovo File ( " screen.png ")); }
}
Programmazione © www.354353.com