我已经尝试了几种我在互联网上找到的关于如何通过套接字发送多个图像的解决方案,但我无法让它按我想要的方式工作。我有以下设置:
客户:
- 一个线程拍摄我的屏幕快照并将它们放入队列
- 多个线程从队列中读取并通过套接字将图像发送到服务器
服务器:
- 允许多个连接并接收图像并将它们放入队列的套接字服务器
- 读取队列并将图像写入 JPanel 的线程
我的问题是我很难通过套接字发送图像,例如。保持打开的套接字并仅流式传输图像。我尝试了不同的解决方案,但只发送了第一张图片。如果有人可以分享一些关于如何将多个图像从一个线程写入另一个线程的代码,我将不胜感激。
编辑
感觉每张图片都没有刷新?我现在创建 1 个线程以使用打开的连接发送:
while(true)
{
BufferedImage imageQItem = (BufferedImage) queue.dequeue();
ImageIO.write(imageQItem,"jpg",out);//out is a dataoutputstream
}
然后我读进去(我的套接字服务器为上述客户端的连接创建了一个新线程)
while(true)
{
System.out.println("Reading");
BufferedImage image = ImageIO.read(in);
viewer.setBufferedImage(image);
viewer.repaint();
}
所发生的只是它一直在打印阅读。我似乎没有结束每张图片。