socket接收服务端的数据

代码如下:

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();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值