반응형
클라이언트 주소 정보 초기화
앞서 보인 인터넷 주소 정보의 초기화 과정은 클라이언트 프로그램이 아닌
서버 프로그램에서 주로 등장한다.
이는 소켓에 IP와 PORT번호를 할당해서 다음과 같이 알리기 위함이다.
-
"IP 127.0.0.1, PORT 9999으로 들어오는 데이터는 내게로 다 보내라"
-
반면 클라이언트 프로그램에서 생성하는 연결 요청용 소켓은 다음과 같이 알린다.
-
"IP 127.0.0.1, PORT 9999로 연결을 해라"
-
알리는 형태가 다르다는 것은 호출하는 함수가 다르다는 뜻이다.
서버 프로그램의 알림은 bind 함수를 통해서 이뤄지고,
클라이언트 프로그램의 알림은 connect 함수를 통해서 이뤄진다.
그렇기에 알리기 전에(함수호출 전에) 준비해야 할 주소 값의 유형도 다르다.
서버 프로그램에서는 sockaddr_in 구조체 변수 하나 선언해서
이를 서버 소켓이 동작하는 컴퓨터의 IP와 소켓에 부여할 PORT번호로 초기화한 다음에 bind 함수를 호출한다.
반면, 클라이언트 프로그램에서는 sockaddr_in 구조체 변수를 하나 선언해서,
이를 연결할 서버 소켓의 IP와 PORT번호로 초기화한 다음 connect 함수를 호출한다.
반응형
'시작하지 말았어야 했던 것 > (Unix, Linux) C Socket' 카테고리의 다른 글
(리눅스) bind 함수, 그 전에 해야 할 과정(서버와 클라이언트 프로그램 분석) (0) | 2021.02.03 |
---|---|
(리눅스) INADDR_ANY (0) | 2021.02.02 |
(리눅스) 인터넷 주소의 초기화 (0) | 2021.02.02 |
(리눅스) 문자열 정보를 네트워크 바이트 순서의 정수로(3) (0) | 2021.02.02 |
(리눅스) 문자열 정보를 네트워크 바이트 순서의 정수로(2) (0) | 2021.02.02 |