더북(TheBook)

3.10 더 읽을거리

 

 

지금까지 소켓 프로그래밍을 의사 코드로 설명했습니다. 실제 작동하는 코드로 설명하면 개념 이해보다 함수의 세부 구현에 더 많은 주의를 기울여야 하기 때문입니다. 필자의 이러한 설명 방식이 여러분이 이해하는 데 도움이 되었기를 바랍니다.

IOCP나 epoll을 사용하는 예는 이미 인터넷에 많이 나와 있습니다. 소켓 프로그래밍에서 고려해야 할 점은 다음과 같습니다.

• IP 주소 값이 아니라 도메인 이름으로 접속하려면 도메인 이름에서 IP 주소를 변환하는 일(2.4절 참고)을 해야 합니다. 이를 위한 함수로 getaddrinfo()를 사용합니다.

• iOS 등 FreeBSD 계열 운영체제에서 소켓 프로그래밍을 할 때는 epoll과 비슷한 것을 사용할 수 있는데, 그 이름은 kqueue입니다.

• 소켓 함수를 직접 이용하는 것이 불편하다면 boost 라이브러리의 asio를 사용하는 것도 좋은 방법입니다.

• C/C++에서 소켓 함수는 매우 까다롭습니다. 하지만 C#, 자바 같은 고수준 언어에서는 소켓 클래스가 매우 정갈하게 정리되어 있어 사용하기가 훨씬 편리합니다.

앞서 언급했듯이 Socket API는 예외 사항이 많기 때문에 함수 설명을 꼼꼼하게 읽을 것을 권장합니다. msdn connect function이나 man connect로 검색하면 자세한 소켓 함수 설명을 볼 수 있을 것입니다.

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