프로젝트 발표 순서 12/7(수), 팀 별 15분 발표순서 PPT (팀 별 이름, 구현 내용, 결과-그래프 포함) 각 기법당

Slides:



Advertisements
Similar presentations
TCP 서버/클라이언트 동작 원리 - (1) TCP 서버/클라이언트 예 웹 서버 웹 클라이언트 웹 클라이언트
Advertisements

정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
Socket Programming 소개.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
Chapter 6. 리눅스 백도어 황 선 환.
13장 소켓.
Chapter 06. UDP 서버/클라이언트.
Network Lab. Young-Chul Hwang
TCP Client/Server Program
Department of Computer Science and Engineering
9 파이프.
PHP입문 Izayoi 김조흔.
소켓 모델 주소 지정 in_addr_t inet_addr(const char *ip_address) 연결 지향 모델 (TCP)
Chapter 03. 소켓 주소 구조체 다루기.
TCP Client/Server Program
Network Lab. Seoung Hyeon, Lee
컴퓨터 네트워크 PART 03 프로그래밍 (chapter 01 Socket 프로그래밍) 임효택
Multimedia & Mobile Communications Lab.
11 소켓 프로그래밍 기초.
11 소켓 프로그래밍 기초.
인터넷 주소 변환 School of Electronics and Information. Kyung Hee University.
14장 소켓.
제 14장 Multicast & Broadcast
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
Department of Computer Engineering
한남대학교 컴퓨터공학과 컴퓨터 네트워크 실험실
Department of Computer Engineering
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 7장 소켓 연결의 우아한 종료 인공지능실험실 석사 2학기 이희재
Network Project (중간 보고)
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
양방향 파이프의 활용 양방향 통신 파이프는 기본적으로 단방향이므로 양방향 통신을 위해서는 파이프를 2개 생성한다.
12장 파이프.
fork로 생성한 자식 프로세스에서 exec 함수군을 호출
인터넷에서의 데이터 흐름 Application Transport Transport Network Link Unix
Chapter 7. RAS(전화접속,VPN) & IAS
네트워크 프로그래밍 Yang-Sae Moon Department of Computer Science
Department of Computer Engineering
Homework 6… 12월 2일(금) 11:59pm까지 자신의 이름과 학번을 출력해 주는 유닉스/리눅스 네트워크 소켓 서버 프로그램 과 클라이언트 프로그램 을 작성해 보세요 참고 (실습1) Hello 프로그램 helloserver.c helloclient.c 컴파일.
7장. UDP 서버-클라이언트 UDP 서버-클라이언트의 기본 구조와 동작 원리를 이해한다.
Chapter 06. UDP 서버/클라이언트.
NJM Messenger 박상원 박연호.
메시지 큐[5] – test1.c 메시지 제어: msgctl(2) #include <sys/msg.h>
ARP Project 조 충 호 교수님 김 세 진 조교님 조 진 형 변 익 수
Department of Computer Science and Engineering
13장 고급 입출력 함수 박사 4학기 최 성자.
Chapter 03. 소켓 주소 구조체 다루기.
Socket Address Structure and Byte Ordering Functions
7장. UDP 서버-클라이언트 UDP 서버-클라이언트의 기본 구조와 동작 원리를 이해한다.
Chapter 5 UDP Socket 소켓 프로그래밍.
(분산 통신 실습) : 소켓(Sockets)
School of Electronics and Information. Kyung Hee University.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Internet 데이터 전송 목표: 인터넷의 개요 및 기본 내용을 살펴보고 VB에서의 데이터 전송 프로그래밍에 대하여 학습한다. 주요내용 인터넷의 개요 인터넷 데이터 전송 인터넷 프로그래밍 Winsock Client Server 프로그래밍.
오라클 넷(Oracle Net)의 개념 및 구성
CGI란 무엇인가? CGI(Common Gateway Interface)의 정의
MAIL CLIENT 김창우 윤성훈 이경재.
Department of Computer Engineering
Network 네트워크 이론 및 실습 TCP / IP 4장.
Department of Computer Engineering
인터넷 주소변환 School of Electronics and Information. Kyung Hee University.
웹(WWW).
Chapter 04. TCP 서버/클라이언트.
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 제 8장 도메인 이름과 인터네 주소 인공지능실험실 박사 1학기 장성만
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
9 파이프.
소켓의 생성과 프로토콜의 설정 School of Electronics and Information.
Network Lab. Young-Chul Hwang
M.B.TEAM 중간 발표 (5.18) 이 제걸 백 인호.
Presentation transcript:

프로젝트 발표 순서 12/7(수), 팀 별 15분 발표순서 PPT (팀 별 이름, 구현 내용, 결과-그래프 포함) 각 기법당 코드 설명 실행 compute node file dump 각 데이터 별, I/O node 별 file dump PPT 파일 제출

프로젝트 점수(1) 미 구현 프로그램 오류 5 data size 줄임 10 1번(20점) 프로그램 오류 5 data size 줄임 10 1번(20점) compute node file 내용오류(크기는 맞음) 256KB I/O node file 내용오류(크기는 맞음) 각 -2점 128KB I/O node file 내용오류(크기는 맞음) 64KB I/O node file 내용오류(크기는 맞음)

프로젝트 점수(2) 미 구현 프로그램 오류 10 data size 줄임 20 2번(40점) 프로그램 오류 10 data size 줄임 20 2번(40점) compute node file 내용오류(크기는 맞음) 256KB I/O node file 내용오류(크기는 맞음) 각 -5점 128KB I/O node file 내용오류(크기는 맞음) 64KB I/O node file 내용오류(크기는 맞음)

프로젝트 점수(3) 미 구현 프로그램 오류 10 data size 줄임 20 3번(40점) 프로그램 오류 10 data size 줄임 20 3번(40점) compute node file 내용오류(크기는 맞음) 256KB I/O node file 내용오류(크기는 맞음) 각 -5점 128KB I/O node file 내용오류(크기는 맞음) 64KB I/O node file 내용오류(크기는 맞음)

[예제 11-7] (1) 인터넷 소켓(서버)-server1.c ... 09 #define PORTNUM 9000 10 11 int main(void) { 12 char buf[256]; 13 struct sockaddr_in sin, cli; 14 int sd, ns, clientlen = sizeof(cli); 15 16 if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { 17 perror("socket"); 18 exit(1); 19 } 20 21 memset((char *)&sin, '\0', sizeof(sin)); 22 sin.sin_family = AF_INET; 23 sin.sin_port = htons(PORTNUM); 24 sin.sin_addr.s_addr = inet_addr("192.168.162.133"); 25 26 if (bind(sd, (struct sockaddr *)&sin, sizeof(sin))) { 27 perror("bind"); 28 exit(1); 29 } 포트번호 소켓 생성 소켓 주소 구조체 생성 소켓기술자와 소켓 주소 구조체 연결

[예제 11-7] (1) 인터넷 소켓(서버) 31 if (listen(sd, 5)) { 32 perror("listen"); 33 exit(1); 34 } 35 36 if ((ns = accept(sd, (struct sockaddr *)&cli, &clientlen))==-1){ 37 perror("accept"); exit(1); 39 } 40 41 sprintf(buf, "Your IP address is %s", inet_ntoa(cli.sin_addr)); 42 if (send(ns, buf, strlen(buf) + 1, 0) == -1) { 43 perror("send"); 44 exit(1); 45 } 46 close(ns); 47 close(sd); 48 49 return 0; 50 } 클라이언트 접속요청 대기 클라이언트와 연결 클라이언트로 데이터 보내기

[예제 11-7] (2) 인터넷 소켓(클라이언트)-client1.c ... 09 #define PORTNUM 9000 10 11 int main(void) { 12 int sd; 13 char buf[256]; 14 struct sockaddr_in sin; 15 16 if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { 17 perror("socket"); 18 exit(1); 19 } 20 21 memset((char *)&sin, '\0', sizeof(sin)); 22 sin.sin_family = AF_INET; 23 sin.sin_port = htons(PORTNUM); 24 sin.sin_addr.s_addr = inet_addr("192.168.162.133"); 25 포트번호 소켓 생성 소켓 주소 구조체 생성

[예제 11-7] (2) 인터넷 소켓(클라이언트) 26 if (connect(sd, (struct sockaddr *)&sin, sizeof(sin))) { 27 perror("connect"); 28 exit(1); 29 } 30 31 if (recv(sd, buf, sizeof(buf), 0) == -1) { 32 perror("recv"); 33 exit(1); 34 } 35 close(sd); 36 printf("From Server : %s\n", buf); 37 38 return 0; 39 } 서버에 접속 요청 서버가 보낸 데이터 읽기 # gcc -o ex11_7s ex11_7-inet-s.c -lsocket -lnsl # gcc -o ex11_7c ex11_7-inet-c.c -lsocket -lnsl # ex11_7s.out 서버 # ex11_7c.out From Server : Your IP address is 192.168.162.131 클라이언트

TCP 기반 프로그래밍 반복서버 동시동작서버 데몬 프로세스가 직접 모든 클라이언트의 요청을 차례로 처리 데몬 프로세스가 직접 서비스를 제공하지 않고, 서비스와 관련있는 다른 프로세스를 fork 함수로 생성해 클라이언트와 연결시켜준다.

[예제 12-1] (1) 반복서버(서버)-server2.c ... 10 #define PORTNUM 9001 11 12 int main(void) { 13 char buf[256]; 14 struct sockaddr_in sin, cli; 15 int sd, ns, clientlen = sizeof(cli); 16 17 memset((char *)&sin, '\0', sizeof(sin)); 18 sin.sin_family = AF_INET; 19 sin.sin_port = htons(PORTNUM); 20 sin.sin_addr.s_addr = inet_addr("192.168.162.133"); 21 22 if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { 23 perror("socket"); 24 exit(1); 25 } 26 27 if (bind(sd, (struct sockaddr *)&sin, sizeof(sin))) { 28 perror("bind"); 29 exit(1); 30 } 31 32 if (listen(sd, 5)) { 33 perror("listen"); 34 exit(1); 35 } 소켓 주소구조체 생성 소켓 생성 클라이언트 접속 대기

[예제 12-1] (1) 반복서버(서버) 37 while (1) { 38 if ((ns = accept(sd, (struct sockaddr *)&cli, &clientlen)) == -1) { 39 perror("accept"); 40 exit(1); 41 } 42 sprintf(buf, "%s", inet_ntoa(cli.sin_addr)); 43 printf("*** Send a Message to Client(%s)\n", buf); 44 45 strcpy(buf, "Welcome to Network Server!!!"); 46 if (send(ns, buf, strlen(buf) + 1, 0) == -1) { 47 perror("send"); 48 exit(1); 49 } 50 51 if (recv(ns, buf, strlen(buf), 0) == -1) { 52 perror("recv"); 53 exit(1); 54 } 55 printf("** From Client : %s\n", buf); 56 close(ns); 57 } 58 close(sd); 59 60 return 0; 61 } 클라이언트 접속 클라이언트에 정보전송 클라이언트의 데이터 수신

[예제 12-1] (2) 반복서버(클라이언트)-client2.c ... 11 #define PORTNUM 9001 12 13 int main(void) { 14 int sd; 15 char buf[256]; 16 struct sockaddr_in sin; 17 18 memset((char *)&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; 20 sin.sin_port = htons(PORTNUM); 21 sin.sin_addr.s_addr = inet_addr("192.168.162.133"); 22 23 if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { 24 perror("socket"); 25 exit(1); 26 } 27 28 if (connect(sd, (struct sockaddr *)&sin, sizeof(sin))) { 29 perror("connect"); 30 exit(1); 31 } 소켓 주소구조체 생성 소켓 생성 서버에 연결 요청

[예제 12-1] (2) 반복서버(클라이언트) 33 if (recv(sd, buf, sizeof(buf), 0) == -1) { 34 perror("recv"); 35 exit(1); 36 } 37 38 printf("** From Server : %s\n", buf); 39 40 strcpy(buf, "I want a HTTP Service."); 41 if (send(sd, buf, sizeof(buf) + 1, 0) == -1) { 42 perror("send"); 43 exit(1); 44 } 45 46 close(sd); 47 48 return 0; 49 } 서버의 데이터 수신 서버에 데이터 송신 # ex12_1s.out 서버 # ex12_1c.out ** From Server : Welcome to Network Server!!! 클라이언트 # ex12_1s.out *** Send a Message to Client(192.168.162.133) ** From Client : I want a HTTP Service. 서버 # ex12_1s.out *** Send a Message to Client(192.168.162.131) ** From Client : I want a FTP Service. 클라이언트

[예제 12-2] (1) 동시 동작 서버(서버)-server3.c ... 10 #define PORTNUM 9002 11 12 int main(void) { 13 char buf[256]; 14 struct sockaddr_in sin, cli; 15 int sd, ns, clientlen = sizeof(cli); 16 17 if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { 18 perror("socket"); 19 exit(1); 20 } 21 22 memset((char *)&sin, '\0', sizeof(sin)); 23 sin.sin_family = AF_INET; sin.sin_port = htons(PORTNUM); 25 sin.sin_addr.s_addr = inet_addr("192.168.162.133"); 26 27 if (bind(sd, (struct sockaddr *)&sin, sizeof(sin))) { 28 perror("bind"); 29 exit(1); 30 } 31 32 if (listen(sd, 5)) { 33 perror("listen"); 34 exit(1); 35 }

[예제 12-2] (1) 동시 동작 서버(서버) 37 while (1) { 38 if ((ns = accept(sd, (struct sockaddr *)&cli, &clientlen)) == -1) { 39 perror("accept"); 40 exit(1); 41 } 42 switch (fork()) { 43 case 0: 44 close(sd); 45 strcpy(buf, "Welcome to Server"); 46 if (send(ns, buf, strlen(buf) + 1, 0) == -1) { 47 perror("send"); 48 exit(1); 49 } 50 51 if (recv(ns, buf, strlen(buf), 0) == -1) { 52 perror("recv"); 53 exit(1); 54 } 55 printf("** From Client: %s\n", buf); 56 sleep(5); 57 exit(0); 58 } 59 close(ns); 60 } 61 62 return 0; 63 } fork로 자식 프로세스 생성 자식 프로세스가 클라이언트로 메시지 보내고 데이터 수신

실습 클라이언트에서 보낸 메시지를 그대로 되돌려주는 에코서버와 클라이언 트를 작성하라. 클라이언트 메시지가 quit를 보내면 프로그램은 종료한다 . 반복서버 동시동작서버 유닉스 도메인 소켓