socket编程的1点反思

socket编程的一点反思

最近在做一个IM,在android平台上做的研发

 

碰到一个问题是:

 

     byte[] respMsgBodyBt = new byte[respMsgBodyLength];

int bodyLength = 0; // 读取报头

while (bodyLength < respMsgBodyLength) {

bodyLength += reader.read(respMsgBodyBt, bodyLength, respMsgBodyLength-bodyLength);

try {

Thread.sleep(SLEEP_TIME);

} catch (InterruptedException e) {

Log.e(TAG, "=============sleep error==");

}

}

 

 

----------------->读取一定长度的字节流的时候,你要注意read方法里面指定字节数组的位置,同时每读一次做适当的休眠

                        如果你不指定字节数组的位置,而是每次从头读起,那么它会覆盖原先的结果