• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

패킷의 내용이 짤려서 올 경우

22.10.01 15:40 작성 조회수 213

0

안녕하세요 루키스님!

몇 가지 여쭤볼게 있습니다.

패킷의 구성은 패킷헤더 + 패킷내용으로 잘 이해했습니다.

그러나 경우에 따라 패킷이 짤려서 올 수도 있으므로

경우를 크게 2가지로 나눠봤습니다.

  1. 패킷 헤더의 일부분만 도착한 경우
    이 경우는 PacketSession 클래스 덕분에
    도착한 패킷이 패킷헤더 사이즈인 2보다 작으면 다음
    패킷 까지 기다리는 것을 이해했습니다.

그러나 아래의 경우는 어떻게 될지 의문입니다.

  1. 패킷 헤더와 패킷의 내용이 함께 도착했지만
    패킷의 내용은 절반만 도착함.
    이 경우 도착한 패킷이 패킷헤더 사이즈인 2보다 크므로
    OnRecvPacket함수를 호출을 하겠지만
    사실상 패킷의 내용물이 절반밖에 되지 않으므로
    정상적으로 패킷을 못 받을 것 같은데 맞을까요?

    따라서 사실상 OnRecvPacket 함수 내부에서
    해커로부터 보안의 목적 외에도 받은 패킷이 정말 끝까지 잘 받았는지 검사를 하기 위해 받은 패킷의 사이즈를 다시 한 번 더 클라와 교차검증을 해야할 필요가 있는건가요?

답변 1

답변을 작성해보세요.

1

2.번은 이미 처리가 되고 있습니다.
다시 코드를 살펴보시면, 패킷의 사이즈를 먼저 읽은 후
그게 다 조립됐는지를 2차적으로 확인하는 부분이 있을거에요.

이경환3님의 프로필

이경환3

질문자

2022.10.04

감사합니다.
OnRecv 함수 내부에 있었네요 ㅎㅎ

if(buff.Count < dataSize)

{ break; }