gitextract_i3jsrwsv/ ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── docs/ │ ├── .nojekyll │ ├── README.md │ ├── _content/ │ │ ├── chapter01.md │ │ ├── chapter02.md │ │ ├── chapter03.md │ │ ├── chapter04.md │ │ ├── chapter05.md │ │ ├── chapter06.md │ │ ├── chapter07.md │ │ ├── chapter08.md │ │ ├── chapter09.md │ │ ├── chapter10.md │ │ ├── chapter11.md │ │ └── chapter_blank.md │ ├── _coverpage.md │ ├── _navbar.md │ ├── _sidebar.md │ ├── guide.md │ └── index.html ├── netty-code-atguigu/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ ├── atguigu/ │ │ └── netty/ │ │ └── example/ │ │ └── echo2/ │ │ ├── EchoServer.java │ │ └── EchoServerHandler.java │ └── com/ │ └── atguigu/ │ ├── bio/ │ │ └── BIOServer.java │ ├── netty/ │ │ ├── buf/ │ │ │ ├── NettyByteBuf01.java │ │ │ └── NettyByteBuf02.java │ │ ├── dubborpc/ │ │ │ ├── customer/ │ │ │ │ └── ClientBootstrap.java │ │ │ ├── netty/ │ │ │ │ ├── NettyClient.java │ │ │ │ ├── NettyClientHandler.java │ │ │ │ ├── NettyServer.java │ │ │ │ └── NettyServerHandler.java │ │ │ ├── provider/ │ │ │ │ ├── HelloServiceImpl.java │ │ │ │ └── ServerBootstrap.java │ │ │ └── publicinterface/ │ │ │ └── HelloService.java │ │ ├── groupchat/ │ │ │ ├── GroupChatClient.java │ │ │ ├── GroupChatClientHandler.java │ │ │ ├── GroupChatServer.java │ │ │ ├── GroupChatServerHandler.java │ │ │ └── User.java │ │ ├── heartbeat/ │ │ │ ├── MyServer.java │ │ │ ├── MyServerHandler.java │ │ │ └── Test.java │ │ ├── http/ │ │ │ ├── TestHttpServerHandler.java │ │ │ ├── TestServer.java │ │ │ └── TestServerInitializer.java │ │ ├── inboundhandlerandoutboundhandler/ │ │ │ └── MyByteToLongDecoder2.java │ │ ├── protocoltcp/ │ │ │ ├── MessageProtocol.java │ │ │ ├── MyClient.java │ │ │ ├── MyClientHandler.java │ │ │ ├── MyClientInitializer.java │ │ │ ├── MyMessageDecoder.java │ │ │ ├── MyMessageEncoder.java │ │ │ ├── MyServer.java │ │ │ ├── MyServerHandler.java │ │ │ └── MyServerInitializer.java │ │ ├── simple/ │ │ │ ├── NettyClient.java │ │ │ ├── NettyClientHandler.java │ │ │ ├── NettyServer.java │ │ │ ├── NettyServerHandler.java │ │ │ └── Test.java │ │ ├── tcp/ │ │ │ ├── MyClient.java │ │ │ ├── MyClientHandler.java │ │ │ ├── MyClientInitializer.java │ │ │ ├── MyServer.java │ │ │ ├── MyServerHandler.java │ │ │ └── MyServerInitializer.java │ │ └── websocket/ │ │ ├── MyServer.java │ │ ├── MyTextWebSocketFrameHandler.java │ │ └── hello.html │ └── nio/ │ ├── BasicBuffer.java │ ├── MappedByteBufferTest.java │ ├── NIOByteBufferPutGet.java │ ├── NIOFileChannel01.java │ ├── NIOFileChannel02.java │ ├── NIOFileChannel03.java │ ├── NIOFileChannel04.java │ ├── ReadOnlyBuffer.java │ ├── ScatteringAndGatheringTest.java │ ├── groupchat/ │ │ ├── GroupChatClient.java │ │ └── GroupChatServer.java │ └── zerocopy/ │ ├── NewIOClient.java │ └── NewIOServer.java ├── netty-code-self/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── netty/ │ └── code/ │ └── self/ │ └── resp/ │ ├── EchoCommand.java │ ├── PingCommand.java │ ├── RespClientTest.java │ └── RespServerTest.java ├── netty-definitive-guide/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── netty/ │ └── definitive/ │ └── guide/ │ ├── chapter2/ │ │ ├── section1/ │ │ │ ├── TimeClient.java │ │ │ ├── TimeServer.java │ │ │ └── TimeServerHandler.java │ │ ├── section2/ │ │ │ ├── TimeClient.java │ │ │ ├── TimeServer.java │ │ │ ├── TimeServerHandler.java │ │ │ └── TimeServerHandlerExecutePool.java │ │ ├── section3/ │ │ │ ├── MultiplexerTimeServer.java │ │ │ ├── TimeClient.java │ │ │ ├── TimeClientHandle.java │ │ │ └── TimeServer.java │ │ └── section4/ │ │ ├── AcceptCompletionHandler.java │ │ ├── AsyncTimeClientHandler.java │ │ ├── AsyncTimeServerHandler.java │ │ ├── ReadCompletionHandler.java │ │ ├── TimeClient.java │ │ └── TimeServer.java │ ├── chapter3/ │ │ ├── TimeClient.java │ │ ├── TimeClientHandler.java │ │ ├── TimeServer.java │ │ ├── TimeServerHandler.java │ │ └── timer/ │ │ ├── TimeServerHandler.java │ │ ├── TimerClient.java │ │ ├── TimerClientHandler.java │ │ └── TimerServer.java │ ├── chapter4/ │ │ ├── section2/ │ │ │ ├── TimeClient.java │ │ │ ├── TimeClientHandler.java │ │ │ ├── TimeServer.java │ │ │ └── TimeServerHandler.java │ │ └── section3/ │ │ ├── TimeClient.java │ │ ├── TimeClientHandler.java │ │ ├── TimeServer.java │ │ └── TimeServerHandler.java │ ├── chapter5/ │ │ ├── section1/ │ │ │ ├── EchoClient.java │ │ │ ├── EchoClientHandler.java │ │ │ ├── EchoServer.java │ │ │ └── EchoServerHandler.java │ │ └── section2/ │ │ ├── EchoClient.java │ │ ├── EchoClientHandler.java │ │ ├── EchoServer.java │ │ └── EchoServerHandler.java │ ├── chapter6/ │ │ ├── PerformTestUserInfo.java │ │ ├── TestUserInfo.java │ │ └── UserInfo.java │ ├── chapter7/ │ │ ├── EchoClient.java │ │ ├── EchoClientHandler.java │ │ ├── EchoServer.java │ │ ├── EchoServerHandler.java │ │ ├── MsgpackDecoder.java │ │ └── MsgpackEncoder.java │ ├── chapter8/ │ │ ├── SubReqClient.java │ │ ├── SubReqClientHandler.java │ │ ├── SubReqServer.java │ │ ├── SubReqServerHandler.java │ │ ├── SubscribeReqProto.java │ │ ├── SubscribeRespProto.java │ │ └── TestSubscribeReqProto.java │ └── chapter9/ │ ├── MarshallingCodeCFactory.java │ ├── SubReqClient.java │ ├── SubReqClientHandler.java │ ├── SubReqServer.java │ └── SubReqServerHandler.java └── pom.xml