inet_addr()
inet_addr() 예제
inet_aton 예제
1. inet_addr()함수
이 함수는 Dotte-Decimal Notation 형식을 빅엔디안 32비트 값으로 변환시켜줍니다.
unsigned long inet_addr(const char *string);
위가 함수의 원형인데 함수 파라미터 값에 IP주소 문자열의 시작주소를 넣어주면 이 함수가 알아서 빅엔디안 32비트 unsigned long 형의 값으로 만들어줍니다.
성공하면 빅엔디안 형식의 32비트 값을, 실패하면 INADDR_NONE을 리턴합니다.
INADDR_NONE은 실제로 -1로 선언되어 있습니다.
2. inet_aton()함수
이 함수는 기본적으로 주소 문자열을 빅엔디안 32비트 값으로 변환 시켜주는건 inet_addr()함수와 같지만 다른 점이 있습니다.
inet_addr()함수는 변환된 값을 sockaddr_in 구조체의 맴버변수 안에 또 선언된 in_addr 구조체에 값을 대입해주어야 합니다. 하지만 inet_aton()함수는 자동으로 값을 대입시켜줍니다.
따라서 따로 대입해야 할 필요가 없어집니다. 먼저 이것이 함수의 원형입니다.
int inet_aton(const char *string, struct in_addr *addr);
첫번째 파라미터 값은 주소 문자열이 있는 포인터변수가 들어가고 두번째 파라미터 값은 구조체 맴버변수중 주소값이 들어가는 맴버변수의 주소값을 넣어주시면 됩니다.
함수를 성공시키면 0이 아닌값, 실패하면 0이 리턴됩니다.
이 함수는 inet_addr()함수보다 편리하게 사용할 수 있습니다.
'기초 > socket programming' 카테고리의 다른 글
서버 분류 (0) | 2011.07.14 |
---|---|
클라이언트 주소 출력 (0) | 2011.07.14 |
네트워크 저장방식 (0) | 2011.07.14 |
주소 구조체 (0) | 2011.07.14 |
소켓통신 (0) | 2011.07.14 |