一、前言
前面介紹了ServerCnxn,下面開始學(xué)習(xí)NIOServerCnxn。
二、NIOServerCnxn源碼分析
2.1 類的繼承關(guān)系
public class NIOServerCnxn extends ServerCnxn {}
說明:NIOServerCnxn繼承了ServerCnxn抽象類,使用NIO來處理與客戶端之間的通信,使用單線程處理。
2.2 類的內(nèi)部類
1. SendBufferWriter類
SendBufferWriter
說明:該類用來將給客戶端的響應(yīng)進(jìn)行分塊,其核心方法是checkFlush方法,其源碼如下
private void checkFlush(boolean force) { if ((force && sb.length() > 0) || sb.length() > 2048) { // 當(dāng)強(qiáng)制發(fā)送并且sb大小大于0,或者sb大小大于2048即發(fā)送緩存 sendBufferSync(ByteBuffer.wrap(sb.toString().getBytes())); &