Java27 06. Discard Client 만들기 클라이언트를 만들다 보면 Netty가 정말 편한다는것을 알수 있다. 전체코드를 한번보고 서버와 다른점을 한번 더 보자 DiscardClient.java Server와 특별하게 다른점은 안보일것이다. 살짝 다른 부분만 보자. 아래 코드는 하나의 java에 클래스 두개 만들어서 사용했다 접속하자 마자 Say Hello... 만 보내주는 코드이다. 그 외 Handler가 동작하는 모습은 서버와 동일하다고 보면 된다. 이벤트도 동일한 순서대로 일어나는것을 볼수 있다 import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.config.Configurato.. 2022. 1. 7. Netty Pipeline 및 Codec 활용(2) 앞에서 말했던 pipeline을 좀더 조작해보자 여기서 해볼꺼는 ByteBuf 로 받는거를 String으로 변환하는 Codec을 추가해서 귀찮은 형변환을 간단하게 해보고 엔터키가 오면 그걸 잘라서 처리해보고자 한다. 데이터를 받을때 ByteBuf로 기본으로 받다보니 변환해서 사용해야했다 우선 CodeSampleHandler.java의 channelRead 코드를 보면 Object msg -> ByteBuf -> String으로 변환한 뒤 사용했다. @Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { String strRecv = ((ByteBuf) msg).toString(CharsetUtil.. 2022. 1. 7. Netty Decoder with VSCode (2) 나만의 Decoder를 만들어 보자 VS Code 프로젝트 생성 VS Code에서 cmd+shift+p 누르고 Java Project 생성 입력창에 java라고 입력하면 Create Java Project 선택 나중에 gradle이나 maven을 해야겠지만 셋팅 귀찮음. 걍 빌드툴없이 프로젝트 생성하자. ( 필요한 파일들은 한땀한땀 옮겨야 한다.) 저장할 폴더를 선택하고 프로젝트명을 생성한 뒤 필요한 파일을 옮기자 JUnit, Log4J2 with Slf4j(설정파일포함-간단한거 가져옴), Netty를 가져오자 어떤걸 만들어볼까? 예제샘플에 많이 나오는 숫자를 보내면 절대값으로 바꿔주는걸 만들어보자. 첫번째. LoggingHandler를 달고, 두번째. Decoder내에서 ByteBuf를 받아서 Inte.. 2022. 1. 7. 04. ChannelHandler 란 ChannelHandler는 편의점에 손님이 들어왔을때 어떻게 응대할까?를 정의하는 것이라고 생각하면 쉬울 듯 하다. 즉, 어린 친구가 편의점에 왔을 때 눈높이를 낮추고 조곤조곤 이야기하고, 진상 손님이 오면 대응하는게 달라지 듯이 나름대로의 메뉴얼을 머릿속으로 가지고 있듯 여기서 나름대로의 메뉴얼을 만들 수 있을것 같다 ChannelHandler의 종류 ChannelHandler는 들어온 이벤트를 처리하는 ChannelInboundHandler와 나가는 이벤트를 처리하는 ChannelOutboundHandler가 있고, ChannelDuplexHandler는 나가는것과 들어오는것 이벤트를 두개다 처리하는 핸들러가 있다. ChannelHandler를 정의하자 하단 코드에서 p.addLast(new Dis.. 2022. 1. 6. 이전 1 2 3 4 5 6 7 다음