INADDR_ANY는 서버의 IP주소를 자동으로 찾아서 대입해주는 함수이다(복잡한 #define문으로 정의되어 있다. long형값 0).
    INADDR_ANY를 지정할 경우 2가지 이점이 있다. 

(1) 멀티 네트워크 카드 동시 지원
: 서버는 NIC을 2개 이상 가지고 있는 경우가 많은데 만일 특정 NIC의 IP주소를 sin_addr.s_addr에 지정하면 다른 NIC에서 요청된 연결은 서비스 할 수 없게 된다. 이때 INADDR_ANY를 사용하면 두 NIC을 모두 바인딩해주므로 어느 IP를 통해 접속하더라도 정상적인 서비스가 가능하다. 

(2) 이식성
: 또 다른 이점은 이식성인데, 특정 IP를 지정했을 경우 다른 서버 컴퓨터에 프로그램이 설치된다면 주소값을 변경(소스 수정)해야 하지만, INADDR_ANY를 사용하면 소스 수정없이 곧바로 사용 또는 컴파일할 수 있는 장점이 생긴다.


=>  IP주소를 INADDR_ANY, 포트 번호를 9000 으로 설정할 경우, 현재 서버 컴퓨터의 9000번 포트를 목적지로 하는 모든 연결 요청에 대해 해당 서버 응용 프로그램에서 처리하겠다는 의미이다. 한 컴퓨터에 여러 장의 LAN 카드가 장착되어 있어서 여러 개의 IP 주소가 할당되고, 서버 응용 프로그램은 이들 IP를 통해 들어오는 모든 연결 요청을 받아서 처리하기위함.

 
by 민트앤라떼 2013. 11. 12. 01:01