[]Socket input流问题,烦请看下具体是什么原因
//_buffer是我new的一个Byte,把读取的socketinput数据存入buffer
_buffer.writeArrayBuffer(input.buffer,0,input.length);
_buffer.pos=0;
//[问题]!!!!很奇怪 用clear无法清空input
//input.clear();
//必须使用下面的方式清空input
while(input.bytesAvailable)
{
input.getByte();
}
//解析buff数据
readSocketData();
_buffer.writeArrayBuffer(input.buffer,0,input.length);
_buffer.pos=0;
//[问题]!!!!很奇怪 用clear无法清空input
//input.clear();
//必须使用下面的方式清空input
while(input.bytesAvailable)
{
input.getByte();
}
//解析buff数据
readSocketData();
这个问题是由于,你在上一次读数据的时候,没有读完,譬如100个字节,你只读取了50个,下次读数据的时候就会出现累加,第一次未读完的数据会累加到第二次数据的末尾。你上面的情况应该是第一次数据读null了,你可以自己判断下。
我奇怪的是这里的input.clear的用法,貌似有点鸡肋
要回复问题请先登录