반응형

인터넷 주소의 초기화

 

 

이제부터 지금까지 배웠던 내용으로 소켓 생성과정에서 흔히 등장하는

 

인터넷 주소정보의 초기화 방법을 배워보자

 

-

 

 

-

 

위 사진의 코드에서 호출하는 memset 함수 동일한 값으로 바이트단위 초기화할 때 호출하는 함수이다.

 

첫 번째 인자로 구조체 변수 addr의 주소 값이 전달되었으니, 초기화의 대상은 변수 addr이 된다.

 

두 번째 인자로 '0'이 전달되었으니 0으로 초기화가 이뤄진다.

 

세 번째 인자로 addr의 바이트 크기가 전달되었으니 addr 전체가 0으로 초기화된다.

 

이렇듯 memset 함수를 호출해서 addr을 전부 0으로 초기화하는 이유

 

0으로 초기화해야 하는 sockaddr_in 구조체 멤버 sin_zero를 0으로 초기화하기 위함이다.

 

그리고 위 사진의 코드 마지막 문장에서 호출하는 atoi 함수는 

 

문자열로 표현되어 있는 값을 정수로 변환해서 반환한다.

 

결론은 위의 코드에서는 문자열로 표현된 IP주소와 PORT번호를 기반으로 하는

 

sockaddr_in 구조체 변수의 초기화 과정을 보인 것이다.

 

참고로

 

위의 코드에서는 IP와 PORT번호를 코드에 직접 넣어주고 있지만

 

이는 좋은 방법이 아니다.

 

이렇게 구현하면 다른 컴퓨터에서 실행할 때마다 코드를 수정해야 하기 때문이다.

 

그래서 우리는 프로그램 실행 시 main 함수 IP와 PORT번호를 전달해야한다.

 

그리고 우리는 그렇게 예제를 작성하고 있다.

반응형

+ Recent posts