服务器端:
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以及相应的图片类型