java连续发送和接收几张图片字节流

发送端部分代码如下:OutputStreamout_stream_send=CliSocket.getOutputStream();for(intnum=0;num<3;... 发送端部分代码如下:
OutputStream out_stream_send = CliSocket.getOutputStream();
for(int num=0;num<3;num++)
{
//for循环三次,分别打开Images文件夹下三张图片:0.JPG 1.JPG 2.JPG
FileInputStream file_in_stream = new FileInputStream(new File(".\\Images\\"+num+".JPG"));
byte[] b = new byte[1024];
while(file_in_stream.read(b)>0)
{
out_stream_send.write(b);
System.out.println("b is:"+b);
}

}

接收端部分代码如下:
InputStream in_stream2 = CliSocket.getInputStream();
for(int i=0;i<3;i++)
{
//for循环循环三次,分别将接收到的图片字节流保存在C盘下文件名为0.JPG 1.JPG 2.JPG
FileOutputStream file_out_stream = new FileOutputStream(new File("C:\\"+i+".JPG"));
byte[] b_image = new byte[1024];
while(in_stream2.read(b_image)>0)
{
file_out_stream.write(b_image);
}
}

运行的结果是C盘下0.JPG的图片是三张图片相加的总大小.是不是要在中间加一个特殊字节区分开?
恩,问题我解决啦.就是在发送端发送每一张图片后加上结束标志位.然后在接收端接收到结束标志位时便开始下一张图片的接收.
展开
 我来答
桑格组手
推荐于2016-02-02 · 超过19用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:42.1万
展开全部
在接收端获得输入流in_stream2并在for的第一个循环中的while(in_stream2.read(b_image)>0)
中全部读出来了,所以会出现你说的那个结果
具体解决办法是有很多种,可以在发送端申明一个数组,存放文件的大小一起发送给接收端,接收端的while(in_stream2.read(b_image)>0)中再加以处理。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式