인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

donnyh0730's profile image
donnyh0730

asked

[MMORPG Game Development Series with C++ and Unreal] Part 4: Game Server

PacketSession

PacketSession::OnRecv 함수 관련 질문드리고싶습니다ㅠㅠ..

Written on

·

340

0

이 강의에서 아직 핸들링 안하신 걸 수 도 있지만,  패킷이 정말로 잘려서 온 경우 예를들면 패킷 헤더에 16사이즈가 16으로 기입이 되어있는데 소켓 IO에서 받아지게된 바이트수는 12로 받아진 상황이라고 가정 했을때,

if (dataSize/*12*/ < header.size/*16*/)

break;

브레이크 된 이후에는 Disconnet가 되어 버리는데요. 강의에서는 패킷이 다시 올때까지 기다렸다가. 패킷을 파싱 한다고 하셨는데, 실제 동작이랑 조금 다르게 동작하는 것 같습니다

따라서,

질문 : 향후에 핸들링이 바뀔 여지가 있을까요? 그게아니라면 원래 패킷이 잘려오면 디스커넥트가 정석적인 핸들링 방법인건지 궁금합니다!

-수정 : 제가 잘못 이해한 내용이니 궁금해서  들어오신분들은 강의 코드에는 문제가 없음을 알려드립니다 ^^;

networkMMORPGwindows-server

Answer 2

0

donnyh0730님의 프로필 이미지
donnyh0730
Questioner

아하 감사합니다! 지금 디버깅 해봤는데 제가 잘못 이해했었습니다 정상적으로 동작하네요! 

0

rookiss님의 프로필 이미지
rookiss
Instructor

그럴 경우 처리는 하지 않고 다음 패킷을 기다려서 합쳐서 처리해야 합니다.
만약에 Disconnect 처리를 한다면 버그가 있는 것이고 수정을 해주시면 됩니다.

강의 코드를 보면 processLen = 0일 경우 Disconnect를 시키진 않습니다.

donnyh0730's profile image
donnyh0730

asked

Ask a question