java.nio.BufferOverflowException尽管buffer.clear()

时间:2016-09-30 07:53:30

标签: java sockets memcached socketchannel

我正在memaslap基准测试和memcached服务器的客户端之间实现中间件。密钥大小设置为16Bytes,值大小设置为1024Bytes,因此请求绝不应超过2048Bytes,即以下代码片段中的MAX_PACKET_LENGTH

ByteBuffer buffer = ByteBuffer.allocate(MAX_PACKET_LENGTH);

while(running) {
    try {
        buffer.clear();
        socketChannel.read(buffer);
    } catch (IOException e) {
        e.printStackTrace();
    }
    ....
}

我很奇怪为什么在经过一定数量的请求(从不相同的数量)之后,我发现了一个BufferOverflow,尽管我之前做过buffer.clear()

任何人都可以帮助我吗?

0 个答案:

没有答案