• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

패킷이 완전하지 않은 상태로 왔을 경우

21.05.02 16:06 작성 조회수 199

0

안녕하세요 패킷 조립에 관하여 질문있습니다.

[size(2)][packetId(2)][...][size(2)][packetId(2)][...]...

TCP는 순서 보장이 되지만 한 번에 완전한 상태로 보냈는지는 보장이 안되는데

[size(2)] 를 Recv 한 후

[packetId(2)][...] Recv 하는 경우에

[size(2)] 가 처음에 왔을 경우 패킷이 완전체로 도착하지 않았기 때문에 break를 할 것이고

이후 

[packetId(2)][...]가 오면 파싱 과정에서 패킷 아이디를 사이즈로 인식하여 잘못된 결과가 발생하지 않나요?

즉, 불완전한 패킷이 왔을 경우의 처리는 따로 하지 않나요?

답변 1

답변을 작성해보세요.

1

처리되지 않은 데이터는 날리는게 아니라 버퍼에 그대로 복사해서 보관해둡니다.
return 후의 코드를 유심히 보시기 바랍니다.