我正在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()
。
任何人都可以帮助我吗?