inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Serialization #1

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

385

이경환3

작성한 질문수 4

0

안녕하세요 루키스님!

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

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

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

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

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

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

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

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

network unity C#

답변 1

1

Rookiss

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

0

이경환3

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

if(buff.Count < dataSize)

{ break; }

C#에서의 RAII

0

71

3

TLS 질문드립니다.

0

82

2

SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.

0

76

2

Unity Span

0

99

2

XML, Dll 차이점

0

134

2

Session 질문입니다

0

98

1

Write Read 커서 키워드

0

88

1

더미 클라이언트 수에 따른 OnDisconnect 발생

0

85

2

네트워크 Send 전담 스레드 배치

0

115

2

UnhandledException 으로 서버 터지는 경우

0

104

2

컨텐츠 단, 엔진 단

0

118

1

질문 있습니다

0

93

2

C# 게임서버 3D MMORPG

0

159

2

유니티6 버전

0

106

2

receive하는 부분과 send하는 부분의 차이

0

154

2

커서의 위치의 중요성

0

111

2

C++ 전혀 모르는데 C# 서버

0

179

2

강의에 질문이 있습니다

0

94

2

멀티스레드 이해도 질문

0

108

1

500 vs 500

0

148

3

OnAcceptHandler 액션 함수

0

71

1

이 정도 서버의 객관적인 수준이 궁금합니다.

0

207

2

36. Serialization #3 에서 string (name) 코드 수정 질문

0

87

2

외부 컴퓨터와의 통신 방법이 궁금합니다

0

116

1