代码如下:
问题来了:服务器是返回2次数据给我
第一次返回4个字节
第二次返回一个别的流
现在服务是无论我请求什么都会返回2次
但是我在接收的时候只接收到一次
我是不是需要做点什么
我只是接收到一次
还有就是 我该怎么样才能把第一接收到的信息从我的输出流清除掉
是将输出流关掉 然后再new一个新的输出流,也就是将第一次出现的注释 放开?
ByteArrayOutputStream outPut = new ByteArrayOutputStream();
InputStream inPut = socket.getInputStream();
byte[] buffer = new byte[1024 * 512];
int len = 0;
Log.d("返回结果", "准备接受第一次请求返回");
while ((len = inPut.read(buffer)) != -1) {
outPut.write(buffer, 0, len);
outPut.flush();
}
byte[] ar = outPut.toByteArray();
Log.d("返回结果:第" + 1 + "次 长度:", "" + ar.length);
for (int i = 0; i < ar.length; i++) {
Log.d("返回结果:第" + 1 + "次 位置:" + i, "byte数值--" + ar[i]);
}
// outPut.close();
// outPut = new ByteArrayOutputStream();
int k = 2;
Log.d("返回结果", "准备接受第二次请求返回");
int l=0;
while (k<10) {
while ((l = inPut.read(buffer)) != -1) {
outPut.write(buffer, 0, l);
outPut.flush();
}
byte[] ar2 = outPut.toByteArray();
Log.d("返回结果:第" + k + "次 长度:", "" + ar2.length);
// for (int i = 0; i < ar2.length; i++) {
// Log.d("返回结果:第" + k + "次 位置:" + i, "byte数值--" + ar2[i]);
// }
if (ar2.length == 0) {
return;
}
k++;
}
问题来了:服务器是返回2次数据给我
第一次返回4个字节
第二次返回一个别的流
现在服务是无论我请求什么都会返回2次
但是我在接收的时候只接收到一次
我是不是需要做点什么
我只是接收到一次
还有就是 我该怎么样才能把第一接收到的信息从我的输出流清除掉
是将输出流关掉 然后再new一个新的输出流,也就是将第一次出现的注释 放开?
outPut.close();
outPut = new ByteArrayOutputStream();