gpt4 book ai didi

java - 通过socket从服务器到客户端的图像

转载 作者:行者123 更新时间:2023-12-01 14:53:42 24 4
gpt4 key购买 nike

我尝试了在互联网上找到的几种关于如何通过套接字发送多个图像的解决方案,但我无法让它按我想要的方式工作。我有以下设置:

客户:

  1. 一个线程拍摄我的屏幕快照并将它们放入队列
  2. 多个线程从队列中读取图像并通过套接字将图像发送到服务器

服务器:

  1. 允许多个连接并接收图像并将它们放入队列的套接字服务器
  2. 读取队列并将图像写入 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();
}

所发生的只是它继续打印读取。我似乎没有结束每张图片。

最佳答案

byte[] 形式发送(和接收)每个图像,并且最好使用压缩图像的文件格式,例如 .jpg。不要忘记 flush() 图像之间的流。并确保在尝试读取下一个图像之前读取图像的所有字节。

关于java - 通过socket从服务器到客户端的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14527607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com