강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của donnyh0730
donnyh0730

câu hỏi đã được viết

[Tuyển tập phát triển game MMORPG bằng C++ và Unreal] Phần 4: Máy chủ game

Phiên gói

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

Viết

·

386

0

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

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

break;

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

따라서,

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

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

networkMMORPGwindows-server

Câu trả lời 2

0

donnyh0730님의 프로필 이미지
donnyh0730
Người đặt câu hỏi

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

0

Rookiss님의 프로필 이미지
Rookiss
Người chia sẻ kiến thức

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

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

Hình ảnh hồ sơ của donnyh0730
donnyh0730

câu hỏi đã được viết

Đặt câu hỏi