인프런 커뮤니티 질문&답변

박준영님의 프로필 이미지
박준영

작성한 질문수

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

RecvBuffer

클라이언트에서 보낸 데이터가 다 도착하지 않았을 때...? 처리하는 부분이 있는건가요?

작성

·

301

0

클라이언트에서 보낸 데이터가 다 도착하지 않았을 때 다음 데이터가 올 때까지 기다린 후 처리한다고 말씀하셨는데, 이 부분이 코드 어디에 구현되어있는건가요...?

위에 있는 코드를 나름대로 해석해보니

1. OnWrite()는 _recvArgs.Buffer에 들어있는 데이터만큼 _recvBuffer의 _writePos를 증가시킨다.

2.  OnRecv()한 데이터(_recvArgs.Buffer에 들어있는 데이터)의 크기를 processLen에 담는다.

3. processLen의 크기만큼 _readPos를 증가시킨다.

라고 이해했는데,

클라이언트에서 보낸 데이터가 완전한지 불완전한지 딱히 판단하는 부분은 없어보이고 그냥,  [1.데이터가 들어온만큼 _writePos를 증가시킨다 2. 처리한다 3. 처리한만큼 _readPos를 증가시킨다]를 실행시킨거같아서요!

답변 1

2

Rookiss님의 프로필 이미지
Rookiss
지식공유자

아 아직 그 부분을 진행하기 전이네요.
데이터가 완전한지 판단하는 부분은
PacketSession 강의에 가면 나옵니다.

박준영님의 프로필 이미지
박준영
질문자

아 그렇군요! 감사합니다~~

박준영님의 프로필 이미지
박준영

작성한 질문수

질문하기