2012년 1월 17일 화요일

DatagramPacket 재사용시 데이터 잘리는 문제

DatagramPacket 을 만들어 두고 DatagramSocket.receive() 함수를 여러번 부르게되는 경우 만들어둔 DatagramPacket 의 length 값이 변하여 다음 receive() 함수 호출시 데이터가 잘리게 되는 문제가 발생할 수  있다.

DatagramSocket.receive() 함수를 부르기 전에 DatagramPacket.setLength() 함수를 호출하여 length 를 다시 설정하는 작업이 필요하다.

문제는 어떤 기종에서는 DatagramSocket.receive() 호출시 DatagramPacket 의 length 값이 초기화 되기도 한다. 그래서 문제가 있는 확인 못하고 있을 수도 있다.

length 값을 설정하는 것은 어떤 기종에서도 문제가 되지 않으니 설정하는 편이 더 좋겠다.

댓글 없음:

댓글 쓰기