참고
- 클래스 생성
EchoServer, EchoServerHandler
EchoClient, EchoClientHandler
- 코딩
- 서버 실행, 클라이언트 실행
서버 Server, ServerHandler
클라이언트 Client, ClientHandler
EchoServer
- 서버 부트스트랩
- 수신할 포트 바인딩 후 연결 요청 수락
- Handler 인스턴스에 수신메시지에 대해 알리도록 Channel 구성
EchoServerHandler
- 로직: 연결요청 수락 - 수신데이터 처리
- channelRead(): 메시지 수신될 때마다 호출.
- channelReadComplete(): channelRead()의 마지막 호출에서 일괄 처리의 마지막 메시지를 처리했음을 통보.
- exceptionCaught(): 예외
- ChannelHandler는 4 가지 유형에 의해 호출.
-
EchoClient
- 초기화 Bootstrap 인스턴스 생성
- 새로운 연결 생성
- 이벤트처리 제어 NioEventLoopGroup 인스턴스 생성 후 할당. (수신,발신 데이터를 처리하는 것을 포함한 이벤트 처리 포함)
- 서버로 연결하기 위한 InetSocketAddress 생성
- 연결되면 파이프라인에 handler 추가
- 서버로 연결- Bootstrap.connect()
EchoClientHandler
- 로직: 서버 연결 - 메시지 전송 - 각 전손메시지마다 대기 &서버로부터 메시지 수신 - 연결 끊기
- channelActive(): 서버 연결되면 호출
- channelRead0(): 서버로부터 메시지 수신
- exceptionCaught(): 예외