본문 바로가기
728x90

패킷2

NETTY DECODER 오늘은 netty decoder 내가 만든 것이 아닌 다른 분이 만든 것을 봤었다. 나는 맨 처음에 이것을 보고 왜 이렇게 만들었 지? 이렇게 만들면 패킷들이 모두 이어져서 들어올때 문제가 생기는 것 아닌가? 첫 번째 헤더 부분을 통과한다고 했을 때 바디부분에서 리턴을 당하면, 계속 다시 헤더부분만큼 읽는 것이 아닌가?라고 생각했었다. 하지만 내가 했던 생각을 다른 사람들이 못한다는 생각은 바보 같은 생각이고, 이러한 부분에 관해서도 당연하게 대처가 되어있었다. 이사진을 한 번 봐보겠다. 여기서 보면 반복문을 지나치면 바로 헤더 크기만큼 읽어주고 바디 부분을 통과하면 바디 크기만큼 읽어준다 나는 이런 알고리즘을 보고 이거 왜 이런 식으로 만들어졌지?라고 생각하며, 이 코드는 당연히 한 개의 패킷만 온다고.. 2021. 5. 12.
netty 초보 패킷을 받는법 전에 올렸던 자료에서 패킷을 검증하는방법은 올렸었다. 그럼 패킷을 검증하고 나서 패킷을 어떻게 해야할까? 보통은 헤더 바디 테일 부분으로 나눠져 있고 그 안에서도 여러가지 형태로 나눠져 있는데 이것은 약속되어있는 프로토콜마다 매우 다른형태이며, 그래서 이렇게 해라 저렇게 해라 라고 할수는 없지만 방법은 모두 같다. 맨 처음에 나는 패킷을 받아서 크기대로 나누라고 했을때 아니 패킷을 어떻게 크기대로 나누라는거야? 라고 생각했지만 프로토콜 문서에 보면 그 해당 패킷의 형태에 따라 몇바이트인지 모두 지정되어있다. 그럼 그 바이트 크기에 맞춰서 이것을 잘라주면 되는데 방법은 다음과 같다. 나는 패킷을 나눠줄때 이러한 방법으로 나눠줬고 처음에 있는 buffer.order는 byteordering이다 이것은 매우중.. 2021. 5. 7.
728x90