시작하지 말았어야 했던 것/(Unix, Linux) C Socket
(리눅스) 클라이언트의 주소정보 초기화
Sean(slay)
2021. 2. 2. 08:09
반응형
클라이언트 주소 정보 초기화
앞서 보인 인터넷 주소 정보의 초기화 과정은 클라이언트 프로그램이 아닌
서버 프로그램에서 주로 등장한다.
이는 소켓에 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 함수를 호출한다.
반응형