모바일인터넷기초 전산정보학부 모바일인터넷과 권 춘 우 교재 : Computer Networks and Internets (D.E. Comer) 컴퓨터네트워크와 인터넷(조경산 역) 전산정보학부 모바일인터넷과 권 춘 우 http://www.dongyang.ac.kr/~cwkwon e-mail : cwkwon@dongyang.ac.kr
3장 네트워크 프로그래밍과 응용 School of Computing & Information Department of Mobile Internet
3.1 3장의 중요 개념 1) 앞장에서 다룬 내용 2) 본 장의 내용 인터넷 응용 소프트웨어 생성하는 방법 ◑ 네트워크 및 인터넷의 발전 ◑ 인터넷 측정 도구 2) 본 장의 내용 ◑ 프로그래머가 사용하는 네트워크 기능 ◑ 네트워크 기술/통신 프로토콜을 이해 못하고, 인터넷 응용 소프트웨어 생성하는 방법 ◑ 라이브러리 함수 들의 집합 School of Computing & Information Department of Mobile Internet
3.2/3/4 네트워크 통신과 클라이언트-서버 1) 네트워크 통신 응용 프로그램 응용 프로그램 인터페이스(API) 3.2/3/4 네트워크 통신과 클라이언트-서버 1) 네트워크 통신 ◑ 네트워크는 수동적 – 자료 생성 또는 이해 불가능 ◑ 한 쌍의 프로그램이 자료의 전송/처리를 위해 네트워크 사용 ◑ 한 쌍의 응용 프로그램이 메시지 형식/의미 를 이해 응용 프로그램 응용 프로그램 인터페이스(API) 인터페이스(API) Asa 통신 처리 프로그램 통신 처리 프로그램 전송 매체 (네트워크) School of Computing & Information Department of Mobile Internet
3.2/3/4 네트워크 통신과 클라이언트-서버 2) 클라이언트-서버 통신 체계 3.2/3/4 네트워크 통신과 클라이언트-서버 2) 클라이언트-서버 통신 체계 ◑ 한 응용 프로그램이 접속을 시작 - 클라이언트 ◑ 다른 응용 프로그램은 수동적으로 기다림 - 서버 ◑ 프로그램의 위치: (컴퓨터 주소, 응용 포트) ◑ 26장에서 클라이언트-서버 상호 작용 설명 ◑ 27장에서 클라이언트-서버를 위한 API 소개 ◑ 서버 응용 프로그램이 시작 – 클라이언트의 접속을 기다림 ◑ 클라이언트 프로그램은 서버의 위치를 명시하여 서버에 접속 ◑ 클라이언트와 서버가 메시지 교환 ◑ 통신 종료 – 클라이언트/서버가 end-of-file 전송 Asa School of Computing & Information Department of Mobile Internet
3.5/6 응용 프로그램 인터페이스 (API) 1) API(Application Program Interface) ◑ 통신에 필요한 유용한 연산들의 집합 2) API 의 7 연산 (교재에서 제공, 표준이 아님) ◑ await_contact : 클라이언트의 접속 대기를 위해 서버가 호출 ◑ make_contact : 서버 접속을 위해 클라이언트가 호출 ◑ cname_to_comp: 컴퓨터 이름을 이진 수로 변환 ◑ appname_to_appnum: 프로그램 이름을 이진수 로 변환 ◑ send : 자료 전송을 위해 클라이언트 또는 서버가 호출 ◑ recv : 자료 수신을 위해 클라이언트 또는 서버가 호출 ◑ send_eof : 자료 전송을 종료후, 클라이언트 또는 서버가 호출 Asa School of Computing & Information Department of Mobile Internet
3.5/6 응용 프로그램 인터페이스 (API) 3) API 의 동작 모두 recv 호출의 0 반환으로 종료 ◑ 서버는 await_contact 호출로 시작: 클라이언트의 접속 대기 ◑ 클라이언트는 make_contact 호출로 시작 ◑ 서버와 클라이언트는 send, receive로 정보 교환 ◑ 서버와 클라이언트는 모두 send_eof 호출하고, 모두 recv 호출의 0 반환으로 종료 await_contact make_contact recv send send send_eof send_eof recv Asa School of Computing & Information Department of Mobile Internet
3.7 API의 정의 1) 정의된 유형 2) Connection await_contact (appnum a) ◑ computer : 컴퓨터 식별의 2진 값 ◑ connection : 연결 식별의 2진 값 2) Connection await_contact (appnum a) ◑ 서버가 클라이언트로부터의 접속을 기다리기 위해 호출 3) Connection make_contact (computer c,appnum a) ◑ 클라이언트가 서버로 접속을 구축하기 위해 호출 School of Computing & Information Department of Mobile Internet
3.7 API의 정의 4) appnum appname_to_appnum (char *a) ◑ 서버/클라이언트가 서비스의 기호 이름을 2진값으로 변환 5) computer cname_to_comp (char *c) ◑ 클라이언트가 컴퓨터의 이름을 2진값으로 변환 6) Int send (connection con, char *buff, int length, int flags) ◑ 서버/클라이언트가 네트워크를 통해 자료 전송을 위해 호출 7) Int recv(connection con, char *buff, int length, int flags) ◑ 서버/클라이언트가 네트워크를 통해 자료 수신을 위해 호출 School of Computing & Information Department of Mobile Internet
3.7 API의 정의 8) int send_eof(connection con) ◑ 서버/클라이언트가 모두 더 이상의 전송이 없음을 알림 School of Computing & Information Department of Mobile Internet
3.8 에코 응용 프로그램 1) 서버는 수신한 모든 자료를 다시 에코(echo) 서버 호출: echoserver 서버_응용_번호 클라이언트 호출: echoclient 서버_컴퓨터 서버_응용_번호 예) echoclient lancelot.cs.purdue.edu 2000 School of Computing & Information Department of Mobile Internet
3.9 채팅 프로그램 두 사용자가 순서대로 채팅을 수행 한 사용자가 메시지를 입력하면 상대방 화면에 표시 2) 프로그램의 동작 3.9 채팅 프로그램 두 사용자가 순서대로 채팅을 수행 한 사용자가 메시지를 입력하면 상대방 화면에 표시 서버 호출: chatserver 서버_응용_번호 클라이언트 호출: chatclient 서버_컴퓨터 서버_응용_번호 예) chatclient excalibur.cs.purdue.edu 25000 2) 프로그램의 동작 서버: 클라이언트로부터 접속 대기, 클라이언트로부터 텍스트 수신 후에 화면에 출력, 키보드 입력을 전송 클라이언트: 서버에 접속, 사용자의 키보드 입력을 서버에 전송, 서버의 텍스트 수신 후에 화면에 출력 School of Computing & Information Department of Mobile Internet
3.10 웹 응용 프로그램 웹 용의 서버와 클라이언트 2) 프로그램의 특성 서버 호출: webserver 응용_번호 클라이언트 호출: webclient 서버_컴퓨터/경로이름 응용_번호 예) webclient merlin.cs.purdue.edu/index.html 27000 2) 프로그램의 특성 서버: 세 개의 웹 페이지(텍스트만 포함)만을 제공 상용 브라우저에서 URL로 접근 가능 클라이언트: 페이지의 소스만 프린트 상용 웹 서버와 상호 동작 School of Computing & Information Department of Mobile Internet