더북(TheBook)

Tip

소켓 라이브러리에서 대부분 플랫폼 독립적인 함수 이름은 소문자로만 되어 있다. 이를테면 socket() 함수가 그렇다. 하지만 윈도 전용 Winsock2 함수는 대문자로 시작하고 어떤 경우엔 WSA를 접두사로 붙여 이것이 비표준 함수라는 걸 드러낸다. 윈도용으로 개발할 때, 대문자를 쓰는 Winsock2 함수를 쓰는 부분을 따로 분리해 두면 나중에 크로스 플랫폼화할 때 POSIX 플랫폼으로 포팅하기가 수월해진다.

 

Winsock2 전용 추가 함수 중에 POSIX 버전의 버클리 소켓 라이브러리에선 지원하지 않는 기능도 있다. POSIX 호환 운영체제 중에는 POSIX 표준 함수 외에 저마다 전용 네트워크 함수를 제공하는 것도 있다. 표준 소켓 기능 정도면 일반적인 멀티플레이어 네트워크 게임을 개발하는 데 지장이 없으므로 이후 내용에선 표준 크로스 플랫폼 기능만 살펴보기로 한다. 예제 코드는 윈도 운영 체제를 대상으로 개발했지만, 여기서 사용하는 Winsock2 전용 함수는 오로지 초기화, 마무리, 에러 검사밖에 없다. 혹시 플랫폼별로 다른 부분이 있다면 그 부분은 따로 언급하기로 하겠다.

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