inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

RecvBuffer

패킷을 조립하는 부분에서 제가 생각하는게 맞는지 잘 모르겠습니다. ㅜㅜ

해결된 질문

284

ChaYong

작성한 질문수 8

2

친애하는 루키스님~
 
바쁘신 와중에 매번 질문글을 올리게 되어 죄송합니다. ㅜㅜ
 
루키스님이 아주 친절하게 설명을 해주심에도
 
제가 제대로 이해를 하는 건가해서
 
이렇게 송구스럽게 글을 올리게 되었습니다.
 
클라에서 서버로 패킷을 보내게 되면 아래와 같은 과정을 거친다고 현재 생각을 하고 있는데요.
 
이 생각이 맞는 걸가요?
 
1. 클라에서 서버로 패킷이 날아온다.
2. 해당 클라에 대응하는 Session의 _recvBuffer에 차곡 차곡 쌓인다.
3. 패킷이 완전체([size(2)][packetId(2)][ ... ])가 될 때까지 일단 스킵을 한다.
4. 패킷이 완전체가 확인되면 OnRecvPacket()로 전달하고 전달한 패킷을 뺀 나머지 부분을 다시 찝어준다.
5. 이후 패킷이 완전체가 될 때까지 일단 스킵을 한다.
6. 패킷이 완전체가 확인되면 OnRecvPacket()로 전달하고 전달한 패킷을 뺀 나머지 부분을 다시 찝어준다
......(반복)........
 
이렇게 이해하고 있는게 맞는 걸까요?ㅜ
 
끊이지 않는 질문으로 괴롭혀서 죄송합니다...
 
루키스님 강의가 재밌어지는 만큼
 
궁금한 점도 쏙쏙 생겨나서 큰일입니다....

C# network unity

답변 1

1

Rookiss

네 잘 이해하셨습니다.
동일한 recvBuffer는 맞지만,
C# 특성상 C++처럼 자유롭게 포인터를 이용해 참조하지 못하므로
버퍼 시작 위치 (Array) + Offset + DataSize 삼총사로 범위를 지정하는 것입니다.

0

ChaYong

정말 정말 감사합니다.^^

루키스님의 강의들을 반복해서 들으면 들을 수록 쏙 쏙 귀에 들어오는 것 같습니다.

멋진 커리큘럼을 만들어주셔서 다시 한 번 감사드립니다^^

좋은 밤되세요~^^

0

Rookiss

아닙니다.
오히려 난이도가 엄청 어려운 강의이고,
저도 꾸준히 몇 년에 걸쳐서 연구한 것인데
이렇게 따라오신 것에 경의를 표합니다.

C#에서의 RAII

0

65

3

TLS 질문드립니다.

0

79

2

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

0

74

2

Unity Span

0

97

2

XML, Dll 차이점

0

134

2

Session 질문입니다

0

96

1

Write Read 커서 키워드

0

88

1

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

0

85

2

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

0

112

2

UnhandledException 으로 서버 터지는 경우

0

102

2

컨텐츠 단, 엔진 단

0

118

1

질문 있습니다

0

93

2

C# 게임서버 3D MMORPG

0

159

2

유니티6 버전

0

106

2

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

0

154

2

커서의 위치의 중요성

0

110

2

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

0

176

2

강의에 질문이 있습니다

0

92

2

멀티스레드 이해도 질문

0

107

1

500 vs 500

0

147

3

OnAcceptHandler 액션 함수

0

70

1

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

0

204

2

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

0

86

2

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

0

112

1