1. 소켓과 스트림에 대해서 그림 7-2를 사용하여 설명 하시오.
각 호스트 별로 입력 스트림이 출력 스트림이 형성 된다.
물론 한 호스트의 입력 스트림을 다른 호스트의 출력으로 이어지고 한 호스트의 출력 스트림은 다른 호스트의 입력 스트림으로 이어진다.
2. shutdown ( ) 함수의 원형 및 인자를 쓰고 설명하 시오. 함수의 기능은 무엇인가?
sock 종료할 소켓의 파일 디스크립터 전달한다.
howto 종료 방법에 대한 정보를 전달한다.
sock 종료할 소켓의 파일 디스크립터 전달 howto 종료 방법에 대한 정보 전달한다.
3. 교재의 file_server.c 와 file_client.c 소스를 작성하여 실행하고, Half-close에 의해서 수행되는 동작을 해당 소스코드를 기준으로 설명하시오.
server 에서는 수신
shut down (clnt_sd, shup_wr);
read(clnt_sd, fut, BUF_SIZE ) ;
printf (message from client : %s \n " , but );
클라이언트에서는 scok 종료할 소켓의 파일 디스크립터 전달 howto 종료 방법에 대한 정보 전달한다.
4. 구조체 struct hostent 및 멤버변수에 대해서 설명 하시오.
h_name 공식 도메인 이름 이라는 것이 저장된다.
h_aliases 하나의 IP 에 둘 이상으 도메인 이름을 지정하는 것이 가능하다.
h_addrtype gethostbyname 함수는 IPv4 뿐만 아니구 IPv6 까지 지원한다.
h_addr_list 이 멤버를 통해서 도메인 이름에 대한 IP 주소가 형태로 반환된다.
5. IP 주소를 사용하여 호스트의 도메인 이름을 구하 는 함수의 원형 및 동작을 쓰시오.
gethostbyaddr 는 addr IP 주소를 포함한 도메인 정보를 얻을 때 호출하는 함수이다.
struct hostent * gethost by addr (const char * addr , socklen_t len , int family ) ;
add IP 주소를 지닌 in_addr 구조체 변수의 포인터 전달한다.
len 첫번 째 인자로 전달된 주소 정보의 길이 family 주소체계 정보 전달한다.
6. 교재의 gethostbyname.c 와 gethostbyaddr.c 소스 를 작성하고 실행하여 DNS의 역할에 해당하는 함수 를 구현하는 실습을 수행하고 학교도메인의 결과를 작성하시오.
IP addr 1 : 142.251.42.164 구글로 했습니다.