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方法里面指定字节数组的位置,同时每读一次做适当的休眠
如果你不指定字节数组的位置,而是每次从头读起,那么它会覆盖原先的结果