Netty 기본 예제

테스트 환경

  • Java 8

  • Logback

Discard 서버

  • 8888 port를 listen하는 web server. 데이터를 받기만 할 뿐 아무런 동작도 하지 않음.

  • port와 handler를 설정하는 main server

  • client로부터 받은 입력 데이터를 처리하는 handler

  • telnet localhost 8888 명령어로 테스트 가능

public class DiscardServer {
  public static void main(String[] args) throws InterruptedException {
    EventLoopGroup bossGroup = new NioEventLoopGroup(1);
    EventLoopGroup workerGroup = new NioEventLoopGroup();

    try {
      ServerBootstrap bootstrap = new ServerBootstrap();
      bootstrap.group(bossGroup, workerGroup)
          .channel(NioServerSocketChannel.class)
          .childHandler(new ChannelInitializer<SocketChannel>() {
            @Override
            protected void initChannel(SocketChannel socketChannel) throws Exception {
              ChannelPipeline pipeline = socketChannel.pipeline();
              // 핸들러 설정
              pipeline.addLast(new DiscardServerHandler());
            }
          });

      // 포트 지정
      ChannelFuture future = bootstrap.bind(8888).sync();
      future.channel().closeFuture().sync();
    } finally {
      workerGroup.shutdownGracefully();
      bossGroup.shutdownGracefully();
    }
  }
}

Echo 서버, 클라이언트

  • 서버는 입력 받은 메세지를 그대로 다시 클라이언트에게 돌려줌

  • SimpleChannelInboundHandler 대신에 ChannelInboundHandlerAdapter 사용

  • 클라이언트는 채널이 활성화되면 "Hello, Netty!" 메세지를 서버에게 전송

Server

Client

Last updated