본문 바로가기

Study/JAVA Netty Framework3

ByteBuf netty에서 소켓통신시 데이터를 받을때 ChannelRead라는 method가 호출됩니다. 1public void channelRead(ChannelHandlerContext ctx, Object msg) {}cs 수신받은 데이터는 Object msg 형태로 받게 되는데, 이 Object는 ByteBuf에 넣어서 처리를 합니다. 이 ByteBuf라는 녀석은 편리하고 쉬우면서도 주의해야 합니다. 먼저 ByteBuf로 ANSWER라는 데이트를 수신받았다고 가정합니다. 처음 데이터를 읽게 되면 인덱스가 위와 같이 버퍼의 처음을 향해있습니다. 12ByteBuf bb=(ByteBuf) msg;bb.readByte()csreadByte()로 읽었다고 가정하면 'A'가 읽히게 됩니다. 그리고 2번을 더 읽어서 총 .. 2016. 10. 7.
java에서의 unsigned 타입 java에서는 unsigned type을 지원하지 않습니다. 그래서 unsigned type의 c 프로그램과 통신시 받아서 변환을 해보면 이상한 값으로 변환되곤 합니다. 이럴때는 0xff를 이용하시면 됩니다. 1int rcv=data.readByte()&0xff;cs 위와 같이 해주시면 마이너스 값으로 변환되는 걸 막으실 수 있습니다. data는 ByteBuf입니다. 2016. 10. 7.
netty로 서버 만들기-준비 NETTY는 서버에 대해 아는사람들은 왠만하면 다 아는 가장 대표적이고 완벽한 비동기 네트워크 프레임 워크입니다. 한국인이 만든 것이라 더 화제가 되기도 했었는데... 암튼 이 netty로 서버프로그램을 작성하려고 합니다. 참고한 도서는 '자바 네트워크 소녀 Netty' 먼저 netty를 다운로드 받으세요. Netty 다운로드 압축을 풀면 아래와 같은 구조가 되는데 jar 폴더안에 라이브러리들이 개별적으로 있지만 all-in-one 폴더안의 2개의 파일만 있으면 모든 라이브러리들을 한번에 이용가능합니다. 이제 이클립스를 열고 java프로젝트를 하나 생성합니다. 그리고 라이브러리 폴더를 하나 만들어 폴더안에 위 라이브러리 파일 2개를 복사해 주세요. 그리고 프로젝트이름을 마우스 우클릭-> Propertie.. 2016. 10. 4.

인기글