본문 바로가기

TCP & IP

3-4 인터넷 주소의 초기화

 

인터넷 주소정보를 초기화하는 코드를 먼저 알아보자.

struct sockaddr_in addr;
char *serv_ip="211.217.168.13"; //IP주소 문자열 선언
char *serv_port ="9190"; //Port번호 문자열 선언
memset(&addr, 0, sizeof(addr)); //구조체 변수 addr의 모든 멤버 0으로 초기화
addr.sin_family=AF_INET; //주소체계 지정
addr.sin_addr.s_addr=inet_addr(serv_ip); //문자열 기반의 IP주소 초기화
addr.sin_port=htons(atoi(serv-port)); //문자열 기반의 Port번호 초기화

 

위 코드의 경우 IP주소를 입력하지만 IP를 입력하지 않고 초기화 시킬 수 있는 방법도 있다/.

struct sockaddr_in addr;
char *serv_port ="9190"; //Port번호 문자열 선언
memset(&addr, 0, sizeof(addr)); //구조체 변수 addr의 모든 멤버 0으로 초기화
addr.sin_family=AF_INET; //주소체계 지정
addr.sin_addr.s_addr=htonl(INADDR_ANY); //문자열 기반의 IP주소 초기화
addr.sin_port=htons(atoi(serv-port)); //문자열 기반의 Port번호 초기화

 

위 코드의 경우 INADDR_ANY라는 이름의 상수를 통해서 서버의 IP주소를 할당하고 있다. 그래서 PORT번호만 일치하면 수신할 수 있게 된다.