inflearn logo
강의

Course

Instructor

[C# and Unity MMORPG Game Development Series] Part 4: Game Server

Serialization #3

9분 50초부분부터 궁금한게 있습니다

290

hustleinmablood96528

11 asked

0

ushort nameLen = (ushort)Encoding.Unicode.GetByteCount(this.name);
succes &= BitConverter.TryWriteBytes
(s.Slice(count, s.Length-count), nameLength);
count += sizeof(ushort);

Array.Copy(Encoding.Unicode.GetBytes(this.name), 0,segement.Array,count ,nameLength);
            count += nameLength;
==========================================

저는 변수 count의 용도를
실제  패킷의 사이즈 가늠용도로 파악하였고
그래서  패킷의 다음 속성 데이터가 들어올떄 count인덱스부터 들어가면  되겠다라고 이해했습니다

배열을 복사하고 스트링데이터가 버퍼에 들어갈 공간을 설정후,  그만큼 공간을 차지하게 되니
count += nameLen(스트링길이)  더하는건 이해가 가는데

(질문)
그전에 스트링을 인코딩으로 바이트배열로 바꾸고
 count += sizeof(ushort) 하는 이유가 잘 이해가 안가서 질문드립니다
혹시 인코딩 과정자체도 패킷의 사이즈가 늘어나는것인가요?


C# unity network

Answer 2

1

Rookiss

크기를 적어서 건내주기 위한 2바이트가 소요되기 때문입니다.
가령 가변길이 데이터가 10바이트라면("AAAABBBBCC"),
데이터가 10바이트라는 사실을 알려주기 위해
short 타입 숫자를 먼저 기입하고, 이어서 바로 데이터가 들어가게 되겠죠.
수신측에서도 10이라는 숫자를 파싱할 수는 있어야 하니
2바이트 만큼 추가로 할당해주는 것입니다.

0

hustleinmablood96528

제가 초보라 설명 보기 정말 답답하셨을텐데 감사합니다 ㅠ
혹시 했던부분이 맞아서 그나마 다행이네요
빠른 답변 고맙습니다!

TLS 질문드립니다.

0

44

2

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

0

48

2

Unity Span

0

76

2

XML, Dll 차이점

0

106

2

Session 질문입니다

0

80

1

Write Read 커서 키워드

0

76

1

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

0

71

2

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

0

98

2

UnhandledException 으로 서버 터지는 경우

0

87

2

컨텐츠 단, 엔진 단

0

106

1

질문 있습니다

0

77

2

C# 게임서버 3D MMORPG

0

147

2

유니티6 버전

0

98

2

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

0

134

2

커서의 위치의 중요성

0

103

2

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

0

170

2

강의에 질문이 있습니다

0

86

2

멀티스레드 이해도 질문

0

95

1

500 vs 500

0

130

3

OnAcceptHandler 액션 함수

0

61

1

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

0

193

2

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

0

83

2

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

0

106

1

스핀락 질문.

0

110

2