spring과 netty

이번엔 spring을 이용해서 netty의 서버를 만들어보자 내용은 비슷하다. 기존에 했던거와 비슷하다. 스프링의 설정만 사용했다. main부터 보자 public static void main(String[] args) { try(AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class)){ context.registerShutdownHook(); NettyServer nettyServer = context.getBean(NettyServer.class); nettyServer.start(); } } 다들 아시다 시피 AnnotationConfigApplicationContext 에 SpringConfig을 설정했다. 다음 으로 SpringConfig를 보자 @Configuration @ComponentScan(“me.wonwoo.spring”) @PropertySource(“classpath:server.properties”) @Getter public class SpringConfig { @Value(“${tcp.port}”) private int port; @Bean public InetSocketAddress tcpPort() { return new InetSocketAddress(port); } @Bean public static.. Read More

netty (5) netty의 ByteBuf

ByteBuf 이번엔 netty의 버퍼를 알아볼 차례다. 네티의 버퍼는 flip 메서드를 호출하지 않아도 읽기도 쓰기 인덱스가 분리되어 사용 가능하다. 소스를 보자. private void testBuffer(ByteBuf buf, boolean isDirect){ assertEquals(11, buf.capacity()); assertEquals(isDirect, buf.isDirect()); buf.writeInt(65537); assertEquals(4, buf.readableBytes()); assertEquals(7, buf.writableBytes()); assertEquals(1, buf.readShort()); assertEquals(2, buf.readableBytes()); assertEquals(7, buf.writableBytes()); assertEquals(true, buf.isReadable()); buf.clear(); assertEquals(0, buf.readableBytes()); assertEquals(11,buf.writableBytes()); } @Test public void createUnpooledHeapBufferTest(){ ByteBuf byteBuf = Unpooled.buffer(11); testBuffer(byteBuf,false); } 테스트로 netty의 ByteBuf 11개를 생성하였다. 첫번째는 capacity가 11인지 확인하였다. 그리고 direct인지 확인한다… Read More

netty (4) java의 ByteBuffer

netty (4) java의 ByteBuffer 이번 포스팅은 netty의 ByteBuf를 알아보기전에 자바의 ByteBuffer에 대해서 알아보겠다. 자바의 ByteBffer는 java 1.4 에 추가 NIO 바이트 버퍼이다. 자바의 Buffer에는 ByteBuffer, CharBuffer, IntBuffe, ShortBuffer, …등등 여러가지가 있다. 이런 버퍼클래스는 내부의 배열 상태를 관리하는 속성이 있다. capacity 버퍼에 저장할 수 있는 데이터의 최대 크기 한번 저장하면 변경 할 수 없다. position 읽기 또는 쓰기가 작업 중인 위치를 나타낸다. 객체가 생성될 때 0으로 초기화 되고 입력 혹은 읽을때.. Read More