본문 바로가기
netty

netty tcp 통신시 패킷 검증

by 키르시스 2021. 5. 7.
728x90

netty를 사용해서 tcp통신을 할때 다들 패킷을 받아본적이 있을 것이다.

 

이때 패킷이, 한개씩만 오면 너무나 좋고, 평화롭겠지만 현실은 그렇게 아름답지만은 않다.

 

실제로 내가 받은 패킷은 몇십개의 패킷이 이어져있었고, 심지어 끝에있는 패킷은 끊어져 있는 패킷이었다.

 

이러한 패킷을 받을때는 어떠한 방식으로 패킷을 검증해야 할까?

 

 

 

사실 처음에는 그저 while문 하나와 header 인 h 하나로 검증을 완료할려고했다.

 

이 패킷에는 헤더에 데이터의 길이가 들어있는 패킷이었기 때문이었는데, 이 방법이 안된 이유는

 

while문이 끝날때 이전에 검증했던 패킷이 그대로 들어오기 때문에 제대로된 검증이 되지가 않는다는 것이다.

 

그래서 만든 방법이 while문 끝에서 h값을 바꿔주는 방식이었는데 이 방식은 중간에 h의 값이 변경되서 에러가 발생한

 

다. 그래서 생각한 방식은 while문이 진행된 이후에 if문에서 검증을 한 이후에 남아있는 패킷의 길이가 헤더+데이터+

 

테일의 길이보다 짧다면, 이것을 리턴시켜 대기하는 방식으로, 검증을 시켰다. 이러한 방식으로 만든이후에는 모든 에러

 

가 사라졌다. 

728x90

'netty' 카테고리의 다른 글

vo get set 배열 실수  (0) 2021.05.07
java사용 유용한 꿀 팁!!!  (0) 2021.05.07
logback설정 방법!!  (0) 2021.05.07
서버 네트워크 어플리케이션을 네티로 작성  (0) 2021.05.07
netty bootstrap 옵션  (0) 2021.05.07

댓글