저는 Netty를 처음 사용하고 어떻게 작동하는지 이해하려고합니다.Netty : MessageToMessageEncoder 및 ByteBuf로 변환
로컬 호스트에서 테스트 용으로 간단한 SMTP 서버를 만들고 싶습니다. 인코더 작동 방식을 이해하는 데 약간의 문제가 있습니다.
첫 번째는 달성하고자하는 것입니다. 220 localhost Test \r\n
2
에서 보낸 메시지를 수신하고 HELO whatever
으로 응답 내 문제는 지점에 : 서버가이 메시지를 전송 OK
- 클라이언트는 25 포트에서 서버에 연결되어
2
MessageToMessageEncoder
@Override protected void encode(ChannelHandlerContext ctx, Object msg, List<Object> out) throws Exception { //... out.add("220 localhost test \r\n"); }
out.add("220 localhost Test \r\n");
는 아무것도하지 않습니다 그 코드는 오류가 반환되지 않고 클라이언트가HELO
메시지를 전송3
을 가리 키도록 진행되지 않습니다.그러나 나는이
ByteBuf buff = ByteBufUtil.writeUtf8(ctx.alloc(), "220 localhost Test \r\n"); out.add(buff);
모두에게 큰 실행하고 클라이언트가
HELO
메시지그래서 제 질문은 내가 항상
ByteBuf
에 메시지를 인코딩해야 할 것입니다을 전송하고 있음을 변경하는 경우? 공식 문서 때문에 http://netty.io/4.1/api/io/netty/handler/codec/MessageToMessageEncoder.html 과 비슷한 것을 볼 수 있습니다.out.add(message.toString());
그래서 메시지 위해서는 결국 전송 그것은 ByteBuf이어야 될? –