public class MYServerSocket { public static void main(String[] args) {
Socket cSocket;
try {
ServerSocket socket = new ServerSocket(33666);
JFrame f = new JFrame("对方屏幕");
JLabel l = new JLabel("asdasd");
l.setLocation(1,1);
l.setSize(100,100);
f.add(l);
f.setSize(100,100);
f.show();
f.validate();
ImageInputStream sos=null;
cSocket = socket.accept();
while (true) {
sos = ImageIO.createImageInputStream(cSocket
.getInputStream());
// 将图像数据流写入客户端
BufferedImage i = ImageIO.read(sos);
if(i ==null)
continue;
l.setIcon(new ImageIcon(i));


f.validate();
Thread.sleep(1000);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
public class SnapShot {
public static void main(String[] args) {
// 获取屏幕的分辨率
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
try { String imageFormat = "jpg";
Socket clientSocket = new Socket("127.0.0.1", 33666);
// 将图像数据流写入客户端
while (true) {
ImageOutputStream sos = ImageIO
.createImageOutputStream(clientSocket.getOutputStream());
BufferedImage screenshot = (new Robot())
.createScreenCapture(new Rectangle(0, 0, (int) d
.getWidth(), (int) d.getHeight()));
ImageIO.write(screenshot, imageFormat, sos);
System.out.println(sos.length());
Thread.sleep(1000);
} } catch (Exception ex) {
ex.printStackTrace();
}
}
}
第一个类是接受端,第二个是发送屏幕端
我需要实现不断发送本地屏幕,在接受方显示。
但是现在发送端只能发送几次 就在ImageIO.write(screenshot, imageFormat, sos);处走不下去了。
接受方只能受到第一次图
请问代码有什么问题谢谢