Эта статья основана на анализе финальной версии netty-4.1.8. В основном она предназначена для анализа процесса инициализации Netty Client.
- Эта статья основана на анализе финальной версии netty-4.1.8. В основном она предназначена для анализа процесса инициализации Netty Client.
- Поймите связь между Bootstrap, NioEventLoopGroup, NioEventLoop, NioSocketChannel.
- Поймите связь между SelectorProvider, NioSocketChannelUnsafe, DefaultChannelPipeline, DefaultChannelPromise.
- Поймите процесс инициализации и регистрации NioSocketChannel.
- Поймите процесс подключения клиента Bootstrap.
основная концепция
- Bootstrap содержит объект EventLoopGroup.
- Объект EventLoopGroup содержит несколько объектов EventLoop.
- Объект EventLoop содержит события, за обработку которых отвечает Selector.
- SocketChannel содержит EventLoop, а соответствующий объект EventLoop записывается и привязывается.
- SocketChannel содержит Unsafe, и все действия по чтению и записи выполняются Unsafe.
- SocketChannel содержит объект DefaultChannelPipeline и поддерживает все объекты-обработчики.
- Объект ch типа SelectableChannel класса SocketChannel реализует реальный объект соединения, созданный SelectorProvider.openSocketChannel().
Дело клиента Netty
public final class DiscardClient {
static final boolean SSL = System.getProperty("ssl") != null;
static final String HOST = System.getProperty("host", "127.0.0.1");
static final int PORT = Integer.parseInt(System.getProperty("port", "8009"));
static final int SIZE =…