求解android中socket通信传输图片问题
服务器端:
Blob blob_act_pic = DBUtil.getActivityPhotoBlobById(regResult.a_id);//获得活动图片Blob
byte [] buf = blob_act_pic.getBytes(1l, (int)blob_act_pic.length());//获得字节数组
dout.writeInt(buf.length);//告知客户端数组长度
dout.write(buf,0,buf.length);
dout.flush();
客户端:
int act_photoLength = mc.din.readInt();//读取相片长度
byte [] buf = new byte[act_photoLength];//创建相应长度的数组
mc.din.read(buf);//读入图片数据
act_photo = BitmapFactory.decodeByteArray(buf, 0, act_photoLength);//创建Bitmap
现在的问题是,运行模拟器时候,客户端经常无法正确的获取byte,图片无法正常的显示出来,有高手指导下写的哪里有问题?或者提供其他更好的获取服务器上的图片的方式
[解决办法]
直接传个图片文件不就完了
[解决办法]
一般要将图片转换成base64,然后再把这个base65字符串通过socket发送,对方收到后,再将字符串转换成base64以及相应的图片类型