我有一个ServerSocket和一个Socket设置,所以ServerSocket使用ImageIO.write(….)发送图像流,Socket尝试读取它们并用它们更新JFrame.所以我想知道ImageIO是否可以检测到图像的结束. (我完全不了解JPEG格式,所以我测试了它)

显然不是.

在服务器端,我通过循环使用ImageIO.write(…)连续发送图像,其间有一些睡眠.在客户端,ImageIO读取第一个图像没问题,但在下一个图像上它返回null.这令人困惑.我期待它要么阻止阅读第一张图像(因为它认为下一张图像仍然是同一张图像的一部分),要么成功阅读所有这些图像(因为它有效).到底是怎么回事?它看起来像ImageIO检测到第一个图像的结束,但不是第二个图像的结束. (顺便说一下,这些图像大致相似)是否有一种简单的方法可以像这样流式传输图像,或者我是否必须创建自己的机制,将字节读入缓冲区,直到达到指定的字节或序列为止字节,此时它从缓冲区读取图像?

这是我的服务器代码的有用部分:

while(true){

Socket sock=s.accept();

System.out.println("Connection");

OutputStream out=sock.getOutputStream();

while(!socket.isClosed()){

BufferedImage img=//get image

ImageIO.write(img,"jpg",out);

Thread.sleep(100);

}

System.out.println("Closed");

}

我的客户代码:

Socket s=new Socket(InetAddress.getByName("localhost"),1998);

InputStream in=s.getInputStream();

while(!s.isClosed()){

BufferedImage img=ImageIO.read(in);

if(img==null)//this is what happens on the SECOND image

else // do something useful with the image

}

java imageio 使用_java – 使用ImageIO发送图像流?相关推荐

  1. java 邮件 附件_java中javamail发送带附件的邮件实现方法

    本文实例讲述了java中javamail发送带附件的邮件实现方法.分享给大家供大家参考.具体分析如下: JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理em ...

  2. java connection 共享_java 使用HttpURLConnection发送数据简单实例

    java 使用HttpURLConnection发送数据简单实例 每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络.请求 ...

  3. java post 注册_Java 以 post 发送方式实现百度链接提交主动推送

    简介: 最近想实现网站的自动推送链接到百度,一开始是想直接程序调用curl命令,调试好程序之后,部署到生产却不行了,后面经过各种查阅资料,发现竟是自己使用docker部署的原因,容器不支持curl命令 ...

  4. java图片降噪_Java基于opencv实现图像数字识别(四)—图像降噪

    Java基于opencv实现图像数字识别(四)-图像降噪 我们每一步的工作都是基于前一步的,我们先把我们前面的几个函数封装成一个工具类,以后我们所有的函数都基于这个工具类 这个工具类呢,就一个成员变量 ...

  5. java gmail 发送邮件_Java通过Gmail发送电子邮件

    大家好,我刚刚尝试获取一些Java代码,以通过gmail向Java用户发送电子邮件,这就是我所拥有的: @ManagedBean @ViewScoped public class email { // ...

  6. java 绘制六边形_JAVA代码怎么实现图像六边形网格分割效果

    下面给大家介绍JAVA代码怎么实现图像六边形网格分割效果,希望能给大家提供帮助. 一:原理 根据输入参数blockSize的大小,将图像分块,决定每块的中心通过该像素块内所有像素之和的均值与该块内部每 ...

  7. java下发报文_java报文的发送和接收 | 学步园

    /* * 发送端 */ public void send() throws Exception { System.out.println("send..............") ...

  8. java mqtt客户端_java 实现mqtt发送和接收消息客户端具体用法及测试代码

    注:客户端代码实现请看我的上一篇 1mqtt发送消息 发送时不用多讲,每次发送肯定需要运行一次发送消息方法 MyMqttClient mqttClient = new MyMqttClient(); ...

  9. java httprequest选项_java 实现HttpRequest 发送http请求

    packagecom.test;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamRead ...

最新文章

  1. Linux搭建SVN(CollabNet Subversion)服务器 可视化界面
  2. 数据库之存储引擎,数据类型-30
  3. IDEA下搜狗输入法输入中文时卡着不动的参考解决方法
  4. HttpServletResponse.getWriter().print乱码,request.getHeader乱码,解决方法
  5. 深度学习算法 | LSTM算法原理简介及Tutorial
  6. 工作中99%能用到的git命令
  7. Focal Loss 分类问题 pytorch实现代码(续2)
  8. 惩罚函数外点matlab,禁忌搜索算法求解带时间窗的车辆路径问题(惩罚函数版 附MATLAB代码)...
  9. 2019年,区块链不得不知的 9 件大事!
  10. 如何解决 kubernetes 重启后,启来不来的问题
  11. 杭州师范大学仓前校区宽带认证客户端电信用户拨号宽带链接路由器
  12. 取消计算机用户密码页面,取消开机密码 Windows电脑开机登录界面取消方法-电脑教程...
  13. ns-3脚本初识——WIFI无线网络:third脚本
  14. 动手学习数据分析第一章内容
  15. 2017年计算机ppt考试试题,2017年职称计算机考试(PPT练习题大全)
  16. Pytorch 正则化方法(权重衰减和Dropout)
  17. shell实现除法计算器
  18. 搭建centos虚拟机
  19. boxplot箱型图的离群点outlier和极端点extremes
  20. 关于t-io框架的学习

热门文章

  1. STM32项目 -- 选题分享(2)(部分)
  2. 深度学习:GCN(图卷积神经网络)理论学习总结
  3. 2018年北京AQI全年走势图
  4. 大数据分析R语言RStudio使用教程
  5. Tomcat 自动部署、回滚(java project)脚本
  6. python求个位十位百位_Js 分别取一个数的百位,十位,个位
  7. Spark集群运行xgboost4j-spark总结
  8. Android 实现人脸识别检测时的扫描动画效果(二维码扫描动画效果同理)
  9. CAS配置数据库,实现数据库用户认证
  10. 【沃顿商学院学习笔记】公益创业——07现实可行性细节及成本表Operations RealitiesCost Table