inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

SendBuffer 락 관련 질문입니다.

181

snu

작성한 질문수 38

0

안녕하세요 루키스 선생님

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

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

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

 

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

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

 

MMORPG windows-server network

답변 1

1

Rookiss

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

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

IocpObject가 없어질 수 있는 이유에 대한 질문입니다.

0

82

2

CS 기초 지식이 필요없는 세상이 오지 않을까요?

0

168

2

DeadLock 탐지에서 재귀 Lock 상황에 대해 궁금합니다.

0

102

2

LockFreeStack #2에서 ABA 문제

0

76

1

RefCounting 강의 질문있습니다.

0

98

2

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

0

108

2

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

0

128

2

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

0

240

1

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

0

138

1

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

0

148

2

성능 테스트 결과

0

154

2

게임 서버 Stateful, Stateless 진로 고민

0

184

1

WaitOnAddress와 Sleep의 차이 질문

0

139

1

궁금한거 있습니다.

0

129

2

JobTimer 구동 스레드

0

153

2

TryPop() 동작 관련 질문

0

117

1

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

0

211

2

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

0

110

1

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

0

130

2

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

0

203

2

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

0

135

2

mutex와 sleep 차이점

0

163

1

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

0

203

2

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

0

133

1