반응형
공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
이번 포스팅은
네티를 사용한 채팅 서버/클라이언트를 만들어 보기 전에
사용되는 클래스들을 알아보려고 합니다.
꽤 많은 클래스들이 사용되는데요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | EventLoopGroup : EventExecutorGroup 인터페이스를 상속받은 인터페이스 NioEventLoopGroup : I/O 작업을 처리하는 다중 스레드 이벤트 루프. ServerBootstrap : 서버를 설정하는 헬퍼 클래스. Bootstrap : 클라이언트를 위한 채널을 쉽게 만들어주는 bootstrap NioServerSocketChannel : Nio Selector 기반의 구현을 사용해서, 새로운 연결을 수락하는 ServerSocketChannel의 구현클래스입니다. NioSocketChannel : Nio selector 기반의 SocketChannel의 구현 클래스 Channel : 읽기, 쓰기, 연결 그리고 바인드와 같은 I/O 작업이 가능한 네트워크 소케 또는 구성 요소에 대한 연결고리 Channel 은 아래와 같은 것들을 제공함. - 현재 채널의 상태 (e.g. is it open?, is it connected?) - 채널의 구성 매개변수 (e.g. receive buffer size) - 채널이 지원하는 I/O Operations (e.g. read, write, connect, and bind) - 채널과 관련된 모든 I/O 이벤트와 요청을 처리하는 ChannelPipeline 모든 I/O 작업은 비동기로 동작합니다. ChannelFuture : 비동기 채널 I/O작업의 결과 ChannelPipeline : 채널의 인바운드이벤트 그리고 아웃바운드 작업을 처리하거나 차단하는 채널핸들러의 목록. SocketChannel : A TCP/IP socket Channel. ChannelHandlerContext : ChannelHandler가 ChannelPipeline 및 다른 핸들러와 상호 작용할 수 있도록합니다. 다른 무엇보다도, 핸들러는 ChannelPipeline의 다음 ChannelHandler에 통지하고, 자신이 속한 ChannelPipeline을 동적으로 수정할 수 있습니다. StringDecoder : 받은 ByteBuf 를 String으로 인코딩함. TCP/IP와 같은 스트림 기반의 전송을 사용하는 경우는 DelemiterBaseFrameDecoder 또는 LineBasedFrameDecoder 같은 적절한 ByteToMessageDecoder와 함께 사용해야함. TCP/IP 소켓에서 텍스트 기반 라인 프로토콜의 일반적인 설정은 아래와 같음. ChannelPipeline pipeline = ...; // 디코더 pipeline.addLast ( "frameDecoder", new LineBasedFrameDecoder (80)); pipeline.addLast ( "stringDecoder", new StringDecoder (CharsetUtil.UTF_8)); // 인코더 pipeline.addLast ( "stringEncoder", new StringEncoder (CharsetUtil.UTF_8)); StringEncoder :StringDecoder와 반대로 요청한 String을 ByteBuf 로 인코딩 DelimiterBasedFrameDecoder : 수신된 ByteBuf 를 하나 이상의 구분 기호로 분리하는 디코더, NULL 또는 개행 문자와 같은 구분 기호로 끝나는 프레임을 디코딩할 때 특히 유용, LineBasedFrameDecoder :수신 한 ByteBufs를 라인 엔딩에서 분리하는 디코더. "\n"과 "\r\n"이 모두 처리됩니다. 보다 일반적인 구분 기호 기반 디코더는 DelimiterBasedFrameDecoder를 참조. SslContext : SSLEngine 및 SslHandler 의 팩토리로써 동작하는 안전한 소켓 프로토콜 구현. SslContextBuilder : 새로은 SslContext 를 생성하기 위한 빌더 서버사이드에서 사용할 때 Making your server support SSL/TLS // In your ChannelInitializer: ChannelPipeline p = channel.pipeline(); SslContext sslCtx = SslContextBuilder.forServer(...).build(); p.addLast("ssl", sslCtx.newHandler(channel.alloc())); 클라이언트사이드에서 사용할 때 Making your client support SSL/TLS // In your ChannelInitializer: ChannelPipeline p = channel.pipeline(); SslContext sslCtx = SslContextBuilder.forClient().build(); p.addLast("ssl", sslCtx.newHandler(channel.alloc(), host, port)); | cs |
정말 많은 클래스들이 사용되죠?
다음 포스팅에서는 네티 채팅 서버를 만들어보겠습니다.
이상입니다.
감사합니다.
반응형
'Netty(네티)' 카테고리의 다른 글
네티 - 이클립스 자바 프로젝트에 네티 라이브러리 추가 및 Source Attachment (0) | 2017.12.15 |
---|---|
Netty 소켓 서버에 안드로이드 접속해서 채팅하기 Netty Socket Server and Android (15) | 2017.12.15 |
Netty(네티) 채팅 서버/클라이언트 [2] : 채팅 클라이언트 만들기 (1) | 2017.12.13 |
Netty(네티) 채팅 서버/클라이언트 [1] : 채팅 서버 만들기 (2) | 2017.12.13 |
네티란 ? 자바 네트워크 어플리케이션 프레임워크 (1) | 2017.12.12 |