더북(TheBook)

소켓은 동작 중 호출 스레드를 블로킹할 수 있는데, 이는 실시간 응용프로그램에 있어 문제가 된다. 블로킹을 방지하려면 블로킹 호출을 모두 비실시간 스레드로 떠넘기거나, 소켓을 논블로킹 모드로 두던지, 아니면 select() 함수를 쓰면 된다.13

setsockopt() 함수로 소켓의 옵션을 지정해 동작하는 방식을 원하는 대로 제어할 수 있다.

소켓은 일단 제대로 만들어 설정해 놓고 나면, 네트워크 게임에 있어 든든한 가교 역할을 수행할 것이다. 지금까지 네트워크 일반론을 다루었는데, 4장 객체 직렬화부터 본격적으로 게임 개발을 주제로 네트워크를 활용하는 방법을 알아볼 것이다.

 


 

13  역주 아울러 플랫폼마다 제각각이긴 하지만, Windows의 IOCP 같은 비동기식 I/O를 사용하는 방법도 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.