如果我在一端的socket一次写比较多的字节如102400,在另一端用SocketChannel.read(ByteBuffer dst)方法(不管我ByteBuffer 空间分配多少)读取上面socket写的字节,它一次都只会读去一定的字节,然后在下次读取中继续读取剩余的字节,如此反复,直到把上面socket写的所有字节读完,有没有什么办法使我用SocketChannel.read(ByteBuffer dst)读取时能把另一端写入的字节数全部读完??
调试欢乐多
InputStream in=s.getInputStream();
public void readOver(ByteBuffer dst) IOthrows Exception
{
int readNum=0;//以经读取到的长度
int buflength=dst.array().length;
while(readNum<buflength)
{
int everyRead=s.read(dst.array(),readNum,buflength-readNum);
if(everyRead==-1)return;//流结束了
readNum+=everyRead;
}
}