SocketServer怎么批量获取网络摄像机图片

kl_kai 2013-11-24 09:16:34
写了个socket服务器,使用网络摄像机连接服务器,
连接成功后,给网络摄像机发送批量获取图片命令,
然后网络摄像机会传输批量的图片数据到服务器,
请问下怎么把这些数据转为一张张的图片?

下为线程的执行方法:
public void run() {
try {
InputStream is = socket.getInputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
ByteArrayOutputStream baos;
byte[] reader = new byte[1024];
int flag = 0;
// 获取单张图片指令:(GET /image.jpg HTTP/1.1)
// 获取连续获取图片指令:(GET /image HTTP/1.1)
// 发送获取图片的指令可另外控制
bw.write("GET /image HTTP/1.1".toCharArray());
bw.flush();
baos = new ByteArrayOutputStream();
int fatchTime = 0;
while ((flag = is.read(reader)) != -1 && fatchTime < 60) {
// 怎么获取批量图片数据后生成图片?
}

} catch (IOException e) {
} finally {
}
}
...全文
556 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kl_kai 2013-12-01
  • 打赏
  • 举报
回复
没结果,也没互动。版主。。。。。。。。。
kl_kai 2013-11-28
  • 打赏
  • 举报
回复
等解决方法。
kl_kai 2013-11-26
  • 打赏
  • 举报
回复
引用 8 楼 wu898440300 的回复:
其实我懂 .....
然后就露两手出来。
wu898440300 2013-11-26
  • 打赏
  • 举报
回复
其实我懂 .....
kl_kai 2013-11-26
  • 打赏
  • 举报
回复
引用 6 楼 huxiweng 的回复:
[quote=引用 5 楼 liang_k 的回复:] [quote=引用 4 楼 huxiweng 的回复:] [quote=引用 3 楼 liang_k 的回复:] [quote=引用 1 楼 huxiweng 的回复:] 你的意思好像是摄像机那头主动发送图片到你的服务器上???
给网络摄像机发了获取图片命令后,如:GET /image HTTP/1.1,网络摄像机就会批量的传图片数据到服务器上,现在我是不会把这些数据合成图片。拜托帮忙下。[/quote]发到服务器的是什么类型的数据??不是图片格式的吗?[/quote] 是二进制数据,不是图片格式的。[/quote] 2进制你就读2进制啊,命名的时候命名成图片格式[/quote] 传过来的二进制数据不纯是图片的。传过来的一包数据,包含http协议的头,后面是FFD8加图片数据加FFD9, FFD8加图片数据加FFD9,才可以组成一张图片。 现在设备是多包传上来的,我处理获得的数据,只有http协议和FFD8加图片数据(不全),无FFD9的尾,合成不了图片。 大家有了解或做过的帮忙看下。谢谢了。
teemai 2013-11-25
  • 打赏
  • 举报
回复
引用 5 楼 liang_k 的回复:
[quote=引用 4 楼 huxiweng 的回复:] [quote=引用 3 楼 liang_k 的回复:] [quote=引用 1 楼 huxiweng 的回复:] 你的意思好像是摄像机那头主动发送图片到你的服务器上???
给网络摄像机发了获取图片命令后,如:GET /image HTTP/1.1,网络摄像机就会批量的传图片数据到服务器上,现在我是不会把这些数据合成图片。拜托帮忙下。[/quote]发到服务器的是什么类型的数据??不是图片格式的吗?[/quote] 是二进制数据,不是图片格式的。[/quote] 2进制你就读2进制啊,命名的时候命名成图片格式
kl_kai 2013-11-25
  • 打赏
  • 举报
回复
引用 4 楼 huxiweng 的回复:
[quote=引用 3 楼 liang_k 的回复:] [quote=引用 1 楼 huxiweng 的回复:] 你的意思好像是摄像机那头主动发送图片到你的服务器上???
给网络摄像机发了获取图片命令后,如:GET /image HTTP/1.1,网络摄像机就会批量的传图片数据到服务器上,现在我是不会把这些数据合成图片。拜托帮忙下。[/quote]发到服务器的是什么类型的数据??不是图片格式的吗?[/quote] 是二进制数据,不是图片格式的。
kl_kai 2013-11-24
  • 打赏
  • 举报
回复
引用 1 楼 huxiweng 的回复:
你的意思好像是摄像机那头主动发送图片到你的服务器上???
给网络摄像机发了获取图片命令后,如:GET /image HTTP/1.1,网络摄像机就会批量的传图片数据到服务器上,现在我是不会把这些数据合成图片。拜托帮忙下。
纳兰弦歌 2013-11-24
  • 打赏
  • 举报
回复
teemai 2013-11-24
  • 打赏
  • 举报
回复
你的意思好像是摄像机那头主动发送图片到你的服务器上???
teemai 2013-11-24
  • 打赏
  • 举报
回复
引用 3 楼 liang_k 的回复:
[quote=引用 1 楼 huxiweng 的回复:] 你的意思好像是摄像机那头主动发送图片到你的服务器上???
给网络摄像机发了获取图片命令后,如:GET /image HTTP/1.1,网络摄像机就会批量的传图片数据到服务器上,现在我是不会把这些数据合成图片。拜托帮忙下。[/quote]发到服务器的是什么类型的数据??不是图片格式的吗?
环境:Windows XP SP3、 VC++ 6.0、 Windows 2003 SDK 使用步骤: 1、下载解压之后,使用VC++ 6.0打开两个工程:一个是SocketServer和一个ClientSocket工程。 2、首先运行服务器端工程,选默认的端口1008 3、然后运行客户端工程,选默认的端口1008和默认的服务器地址 4、再运行多个客户端进程 5、如果一切正常,可以每个客户端的消息发送,我们可以在服务端和各个客户端同步看到消息 实现一个服务器对多个客户端的关键是,在服务端的使用集合CPtrList类用保存客户端的socket对象,思想与Java中的编程思想一样,只不过Java中会使用多线程技术,在Vector集合保存客户端的socket对象,而MFC框架提供了CSocket类,它是一个异步通信的类,所以看上去代码比较Java的多线程代码简单的实现了一个对多的即时通讯功能。另外,MFC提供了CSocketFile类和CArchive类与CSocket类实现了C++的网络通讯编程功能。 本示例注释非常详细,所有的辅助类都放一个util目录中,然后在工程中分了一个目录来管理这些辅助类,使用代码非常清晰。手动书写部分的代码是按Java的规范书写,当然其它代码由IDE生成的,所以是MS的风格,所以当你看代码时,只要是使用“骆驮命名法”的方法都是本人书写的功能性代码。 参看的思路:在服务端要从回调方法onAccept读起;而客户端代码主要从OnSendButton方法读起,即可理解整个代码的意思。 阅读对象:具有Java的Socket编程经验的人员,并且希望能够书写出比Java效率更高的即时通讯程序的人员

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧