Credo di aver sistemato, ora funziona.
C'erano un paio di cose da mettere a posto, puoi googlare riguardo alle problematiche
di serializzare una BufferedImage.
Mi sono permesso anche di semplificare qua e là per allegerire il codice mentre facevo le prove.
Ciao.
codice:
import java.net.*;
import java.io.*;
import javax.swing.JOptionPane;
import java.awt.Toolkit;
import java.awt.Robot;
import java.awt.Rectangle;
import java.awt.Image;
import java.awt.image.BufferedImage;
import javax.imageio.*;
import javax.swing.ImageIcon;
import javax.imageio.stream.*;
class Provone {
public static void main (String args[]) {
Socket socket = null;
Robot robot = null;
BufferedImage image = null;
ImageOutputStream ios = null;
String ip = JOptionPane.showInputDialog("Please enter server IP");
String port = JOptionPane.showInputDialog("Please enter server port");
int porta = Integer.parseInt(port);
try {
robot = new Robot();
socket = new Socket(ip, porta);
}
catch (Exception e){
e.printStackTrace();
}
try {
image = robot.createScreenCapture(new Rectangle(1024, 768));
ios = ImageIO.createImageOutputStream(socket.getOutputStream());
ImageIO.write(image, "jpg", ios);
ios.flush();
}
catch (Exception e){
e.printStackTrace();
}
}
}
codice:
import java.net.*;
import java.io.*;
import java.awt.FlowLayout;
import javax.swing.*;
import java.awt.image.BufferedImage;
import javax.imageio.*;
import javax.swing.ImageIcon;
import javax.imageio.stream.*;
class Provone2 {
public static void main (String args[]) {
Socket socket = null;
ServerSocket sSocket = null;
BufferedImage image = null;
ImageInputStream iis = null;
JLabel label = null;
JFrame f = new JFrame();
String port = JOptionPane.showInputDialog("Please enter server port");
int porta = Integer.parseInt(port);
try {
sSocket = new ServerSocket(porta);
} catch (Exception e) {
e.printStackTrace();
}
try {
System.out.println("attesa...");
socket = sSocket.accept();
System.out.println("partito");
iis = ImageIO.createImageInputStream(socket.getInputStream());
image = ImageIO.read(iis);
label = new JLabel(new ImageIcon(image));
}
catch (Exception e) {
e.printStackTrace();
}
f.setLayout(new FlowLayout());
f.add(label);
f.setSize(1024, 768);
f.setVisible(true);
}
}