TCP ServerClient Department of Computer Engineering Kyung Hee

  • Slides: 31
Download presentation
TCP Server/Client Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1

TCP Server/Client Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1

인터넷 주소 초기화 Template 1: struct sockaddr_in addr; 2: char *serv_ip=“ 163. 180. 118.

인터넷 주소 초기화 Template 1: struct sockaddr_in addr; 2: char *serv_ip=“ 163. 180. 118. 99"; 3: char *serv_port=“ 9999"; 4: memset(&addr, 0, sizeof(addr_len)); 5: addr. sin_family = AF_INET; 6: addr. sin_addr. s_addr = inet_addr(serv_ip); 7: addr. sin_port = htons(atoi(serv_port)); 1: struct sockaddr_in addr; 2: char *serv_port="9190"; 3: memset(&addr, 0, sizeof(addr_len)); 4: addr. sin_family = AF_INET; 5: addr. sin_addr. s_addr = htons(INADDR_ANY); 6: addr. sin_port = htons(atoi(serv_port)); //스트링 정수 3

Remind of “Hello World!” Server q 프로그램 예제 helloworld_server. c q 실행하기 포트 번호는

Remind of “Hello World!” Server q 프로그램 예제 helloworld_server. c q 실행하기 포트 번호는 123+각자 아이디 l Ex) ID : ip 25 = 12325 15

Remind of “Hello World!” Client q 프로그램 예제 helloworld_client. c q 실행하기 포트 번호는

Remind of “Hello World!” Client q 프로그램 예제 helloworld_client. c q 실행하기 포트 번호는 123+각자 아이디 l Ex) ID : ip 25 = 12325 19

Iterative 서버의 코드 Template for( ; ; ){ clnt_addr_size=sizeof(clnt_addr); clnt_sock=accept(serv_sock, (struct sockaddr*)&clnt_addr, &clnt_addr_size); if(clnt_sock==-1)

Iterative 서버의 코드 Template for( ; ; ){ clnt_addr_size=sizeof(clnt_addr); clnt_sock=accept(serv_sock, (struct sockaddr*)&clnt_addr, &clnt_addr_size); if(clnt_sock==-1) { error_handling("accept() error"); break; } /* 데이터 전송 후 종결 */ write(clnt_sock, message, sizeof(message)); close(clnt_sock); } 22

예제 확인 q helloworld_server 2. c, helloworld_client. c 23

예제 확인 q helloworld_server 2. c, helloworld_client. c 23

실습#1 q daytime_tcp_server. c, daytime_tcp_client. c Daytime service를 제공하는 서버 프로그램과 클라이언트 프로그램을 작성

실습#1 q daytime_tcp_server. c, daytime_tcp_client. c Daytime service를 제공하는 서버 프로그램과 클라이언트 프로그램을 작성 하시오. (TCP 이용) Hint #include<stdio. h> #include<stdlib. h> #include<time. h> Int main(int argc, char *argv[ ]) { time_t tim; tim =time(NULL); printf(“현재 시각은 %s”, ctime(&tim)); return 0; } 30

실습#2 q hostname_tcp_server. c, hostname_tcp_client. c q 클라이언트가 도메인 네임을 서버로 전달해주면 그 서버의

실습#2 q hostname_tcp_server. c, hostname_tcp_client. c q 클라이언트가 도메인 네임을 서버로 전달해주면 그 서버의 hostname 을 알려주는 프로그램을 작성하시오(TCP 이용) q Hint struct hostent, gethostbyname() 31