inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[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 함수 관련 질문드리고싶습니다ㅠㅠ..

409

donnyh0730

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

0

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

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

break;

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

따라서,

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

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

network MMORPG windows-server

Câu trả lời 2

0

donnyh0730

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

0

Rookiss

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

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

writeLock을 잡을때 꼭 empty 상태여야하는 이유?

0

36

2

Memory Pool에서 오버플로우 질문입니다.

0

73

2

포토폴리오 및 진로 관련하여 고민입니다.

0

129

1

포토폴리오 관련 고민입니다.

0

66

1

실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.

0

89

2

성능 테스트 결과

0

108

2

게임 서버 Stateful, Stateless 진로 고민

0

133

1

WaitOnAddress와 Sleep의 차이 질문

0

84

1

궁금한거 있습니다.

0

84

2

JobTimer 구동 스레드

0

108

2

TryPop() 동작 관련 질문

0

81

1

로드맵 C#서버 C++서버 방향성 질문

0

151

2

스레드 id를 출력할떄 메인스레드 id도 출력되나요?

0

73

1

생명주기를 위한 의도적 복사

0

88

2

락프리의 실무에서 사용 질문

0

147

2

32bit threadID와 16비트 상위 WriteFlag에 대해

0

105

2

mutex와 sleep 차이점

0

120

1

실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다

0

161

2

Stomp Allocator의 Release함수에 대한 질문입니다.

0

98

1

공부법 관련해서

0

184

2

MakeShared 함수 관련

0

114

1

지금까지 서버코어에서 만든 내용에 대해 궁금한 점이 있어서 질문 드립니다.

0

145

2

운영체제관련 질문입니다

0

132

1

send하려는 데이터 크기가 크면 memcpy에서 문제가 발생할 것 같습니다.

0

120

2