inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

SendBuffer 락 관련 질문입니다.

172

snu

작성한 질문수 36

0

안녕하세요 루키스 선생님

강의 관련되어 몇가지 질문 사항이 있어 문의드립니다.

1. WSASend 같은 경우 스레드 경합이 일어나 큐에 담아 처리하셨는데 몬스터 사냥이나 채팅이 원인이라고 하셨습니다,

하나의 세션에 이와 같이 스레드 경합 이벤트가 어떻게 동시에 일어날 수 있는지 궁금합니다. (보통 채팅을 치면서 사냥을 하진 않아 잘 이해가 안갔습니다.) 

 

2. 극히 비효율 적이라도 Send 버퍼 자체를 함수 내에서 선언하여 보내게 되면 별도의 락 과정 없이 Send 하여도 Thread Safe 한지 궁금합니다.

  지역변수는 스택 영역이라 스레드별로 따로 있다고 알고 있어 문의드립니다.

 

MMORPG windows-server network

답변 1

1

Rookiss

1. Session은 말 그대로 클라와 소통하기 위한 유일한 수단입니다.
컨텐츠를 만들어보시면 더 확실히 알게 되시겠지만,
채팅을 치면서 사냥을 하진 않는다 하더라도
뜬금없이 다른 장소에 있는 친구가 귓말은 할 수 있겠죠?
아니면 운영자가 전체 이용자들한테 GM 메시지를 뿌릴 수도 있고
돌발적으로 유저들에게 뭔가를 전송할 일은 생기게 됩니다.

2. 그게 그렇게 되진 않습니다. 함수 내에서 선언하더라도
다른 쓰레드에서 관리하는 영역의 클라한테 분명 패킷을 전송할 일이 생기게 됩니다.

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

0

67

2

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

0

98

2

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

0

181

1

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

0

97

1

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

0

110

2

성능 테스트 결과

0

118

2

게임 서버 Stateful, Stateless 진로 고민

0

152

1

WaitOnAddress와 Sleep의 차이 질문

0

106

1

궁금한거 있습니다.

0

93

2

JobTimer 구동 스레드

0

119

2

TryPop() 동작 관련 질문

0

87

1

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

0

169

2

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

0

83

1

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

0

99

2

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

0

157

2

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

0

110

2

mutex와 sleep 차이점

0

133

1

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

0

169

2

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

0

102

1

공부법 관련해서

0

191

2

MakeShared 함수 관련

0

119

1

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

0

153

2

운영체제관련 질문입니다

0

147

1

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

0

125

2