작성
·
140
0
안녕하세요 루키스 선생님
강의 관련되어 몇가지 질문 사항이 있어 문의드립니다.
1. WSASend 같은 경우 스레드 경합이 일어나 큐에 담아 처리하셨는데 몬스터 사냥이나 채팅이 원인이라고 하셨습니다,
하나의 세션에 이와 같이 스레드 경합 이벤트가 어떻게 동시에 일어날 수 있는지 궁금합니다. (보통 채팅을 치면서 사냥을 하진 않아 잘 이해가 안갔습니다.)
2. 극히 비효율 적이라도 Send 버퍼 자체를 함수 내에서 선언하여 보내게 되면 별도의 락 과정 없이 Send 하여도 Thread Safe 한지 궁금합니다.
지역변수는 스택 영역이라 스레드별로 따로 있다고 알고 있어 문의드립니다.
답변 1
1
1. Session은 말 그대로 클라와 소통하기 위한 유일한 수단입니다.
컨텐츠를 만들어보시면 더 확실히 알게 되시겠지만,
채팅을 치면서 사냥을 하진 않는다 하더라도
뜬금없이 다른 장소에 있는 친구가 귓말은 할 수 있겠죠?
아니면 운영자가 전체 이용자들한테 GM 메시지를 뿌릴 수도 있고
돌발적으로 유저들에게 뭔가를 전송할 일은 생기게 됩니다.
2. 그게 그렇게 되진 않습니다. 함수 내에서 선언하더라도
다른 쓰레드에서 관리하는 영역의 클라한테 분명 패킷을 전송할 일이 생기게 됩니다.