Network Lab. Young-Chul Hwang

Slides:



Advertisements
Similar presentations
HANNAM Univ. 제 3 장 주소 체계와 데이터 정렬 Network Lab. Byoung-Son, Choi TCP/IP Socket Programming…
Advertisements

신입생 Study 커리큘럼 OneScore. Contents 후니의 시스코 네트워킹 (4 주 ) 01/ Network 생활코딩 – 웹 서비스 만들기 (4 주 ) Wowhacker 웹 게임 (4 주 ) 02/ Web 뇌를 자극하는 윈도우 시스템 프로그래밍 (4 주 ) 리버싱.
TCP 서버/클라이언트 동작 원리 - (1) TCP 서버/클라이언트 예 웹 서버 웹 클라이언트 웹 클라이언트
1 안드로이드 네트워킹 안드로이드 앱 프로그래밍 여 규리.
Java Socket 통신 이개혁 정대준.
Network Lab. Byoung-Son, Choi
TCP / IP 소켓 프로그래밍 1주차 ( 스터디 계획 및 Ch.1 ~ Ch.4 )
윈도우 네트워크 프로그래밍 √ 원리를 알면 IT가 맛있다 TCP/IP 소켓 프로그래밍 광주대학교 정보통신학과 조 정 호.
Network Lab. Yong bae, Kim
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
TCP/IP Socket Cover Slide 조태문.
TCP Client/Server Program
Department of Computer Science and Engineering
TCP/IP 소켓 프로그래밍 - C 버전 중에서
Sockets Introduction and Protocol Setting
소켓 모델 주소 지정 in_addr_t inet_addr(const char *ip_address) 연결 지향 모델 (TCP)
4장. 소켓 유형과 프로토콜 Network Lab. 이 원 구 1.
TCP/IP Socket Cover Slide 조태문.
TCP Client/Server Program
Network Lab. Seoung Hyeon, Lee
얇지만 얇지 않은 TCP/IP 소켓 프로그래밍 C 2판
Multimedia & Mobile Communications Lab.
인터넷 주소 변환 School of Electronics and Information. Kyung Hee University.
제 14장 Multicast & Broadcast
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
Department of Computer Engineering
한남대학교 컴퓨터공학과 컴퓨터 네트워크 실험실
Department of Computer Engineering
11 장 LAN 기본 개념과 Ethernet LAN
자바네트워크 제9주 TCP/IP 클라이언트 소켓 컴퓨터시뮬레이션학과 2014년 봄학기 담당교수 : 이형원
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 7장 소켓 연결의 우아한 종료 인공지능실험실 석사 2학기 이희재
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
8장. 원격지 시스템 관리하기.
네트워크 프로그래밍 Yang-Sae Moon Department of Computer Science
Department of Computer Engineering
Homework 6… 12월 2일(금) 11:59pm까지 자신의 이름과 학번을 출력해 주는 유닉스/리눅스 네트워크 소켓 서버 프로그램 과 클라이언트 프로그램 을 작성해 보세요 참고 (실습1) Hello 프로그램 helloserver.c helloclient.c 컴파일.
Chapter 8 연결형 프로토콜 서버 발표자 : SE Lab 황 성 하
Department of Computer Engineering
Chapter 06. UDP 서버/클라이언트.
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 9장 소켓의 다양한 옵션 인공지능실험실 박사 1학기 장성만
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
ARP Project 조 충 호 교수님 김 세 진 조교님 조 진 형 변 익 수
Understanding of Socket and File I/O
Java의 정석 제 15 장 네트워킹(Networking) Java 정석 남궁성 강의
프로젝트 발표 순서 12/7(수), 팀 별 15분 발표순서 PPT (팀 별 이름, 구현 내용, 결과-그래프 포함) 각 기법당
Department of Computer Science and Engineering
13장 고급 입출력 함수 박사 4학기 최 성자.
TCP/IP Socket Programming…
Socket Address Structure and Byte Ordering Functions
Socket Address Structure and Byte Ordering Functions
Sockets Introduction and Protocol Setting
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
네트워크 프로그래밍의 이해 School of Electronics and Information.
Internet 데이터 전송 목표: 인터넷의 개요 및 기본 내용을 살펴보고 VB에서의 데이터 전송 프로그래밍에 대하여 학습한다. 주요내용 인터넷의 개요 인터넷 데이터 전송 인터넷 프로그래밍 Winsock Client Server 프로그래밍.
CGI란 무엇인가? CGI(Common Gateway Interface)의 정의
네트워크 프로토콜.
Department of Computer Engineering
Department of Computer Engineering
윤성우의 열혈 TCP/IP 소켓 프로그래밍 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판
자바로 만든 채팅 프로그램 임경진 조주경 지도교수님 : 이광세 교수님.
Understanding of Socket and File I/O
웹(WWW).
Chapter 04. TCP 서버/클라이언트.
다자간 채팅프로그램 김형도 허영민
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 제 8장 도메인 이름과 인터네 주소 인공지능실험실 박사 1학기 장성만
Network Lab. Young-Chul Hwang
Completion Port기반의 채팅프로그램
Department of Computer Engineering
Presentation transcript:

Network Lab. Young-Chul Hwang ychwang@netwk.hannam.ac.kr TCP/IP Socket Programming… 제 4장 TCP 기반 서버/클라이언트 1 Network Lab. Young-Chul Hwang ychwang@netwk.hannam.ac.kr

목차 TCP/UDP에 대한 이해 TCP 기반 서버의 구현 TCP 기반 클라이언트의 구현 TCP 서버/클라이언트 함수 호출 관계 Iterative 서버의 구현 에코(echo) 서버/클라이언트의 구현 윈도우 기반으로 구현하기

TCP/UDP에 대한 이해 프로토콜 스택 인터넷 기반의 효율적 데이터 전송 [그림 4-1] TCP/IP 프로토콜 스택

TCP/UDP에 대한 이해 LINK 계층 물리적인 영역 표준화 [그림 4-2] 인터넷의 연결 구조

TCP/UDP에 대한 이해 IP 계층 데이터의 전송(경로선택) [그림 4-3] IP 라우팅

TCP/UDP에 대한 이해 TCP/UDP 계층 데이터를 전송하는 방법을 정의 TCP와 IP의 관계 [그림 4-4] 전송 제어 프로토콜

TCP/UDP에 대한 이해 Application 계층 소켓을 이용한 프로그램의 구현을 의미 소켓 프로그래밍

TCP 기반 서버의 구현 서버에서의 기본적인 함수 호출 순서 [표 4-5] TCP 서버의 기본적인 함수 호출 순서

TCP 기반 서버의 구현 ‘연결 요청 대기 상태’로의 진입 listen 함수는 전달되는 인자의 소켓을 ‘서버소켓’이 되게 한다. listen 함수는 ‘연결 요청 대기 큐’를 생성한다. #include <sys/type.h> int listen(int s, int backlog) [ 리눅스의 listen 함수 ] #include <winsock2.h> int listen(SOCKET s, int backlog) [ 윈도우의 listen 함수 ]

TCP 기반 서버의 구현 ‘연결요청 대기상태’로의 진입 서버 소켓은 문지기 역할 [그림 4-6] 연결 요청 대기 상태

TCP 기반 서버의 구현 연결 요청 수락 하기 연결요청 대기 큐(queue)에 존재하는 클라이언트의 연결 요청 수락. #include <sys/type.h> #include <sys/socket.h> int accpet(int s, struct sockaddr * addr, int * addrlen); [ 리눅스의 accept 함수 ] #include <winsock2.h> SOCKET accept( SOCKET s, struct sockaddr FAR *addr, int FAR *addrlen ); [ 윈도우의 accept 함수 ]

TCP 기반 서버의 구현 연결 요청 수락 하기 [그림 4-7] 연결 요청 수락 상태

TCP 기반 서버의 구현 Hello World 서버 프로그램 다시 보기 serv_sock=socket(PF_INET, SOCK_STREAM,0); 서버 소켓 생성 If (bind(serve_sock, (struct sockaddr*) &serv_addr, sizeof (serv_addr))==-1); 소켓에 주소 할당 If ( listen(serv_sock, 5) == -1) 연결 요청 대기 상태로 진입 clnt_sock = accept(serv_sock, (struct sockaddr*) &clnt_addr, *clnt_addr_size); 연결 요청 수락 write(clnt_sock, message, sizeof(message)); 데이터 전송 close (clnt_sock); 연결 종료

TCP 기반 클라이언트의 구현 클라이언트의 기본적인 함수 호출 순서 [그림 4-8] 클라이언트 함수 호출 순서

TCP 기반 클라이언트의 구현 클라이언트의 기본적인 함수 호출 순서 #include <sys/type.h> int connect(int sockfd, struct sockaddr *serv_addr, int addrlen); [ 리눅스의 연결 요청 함수 ] #include <winsock2.h> int connect( SOCKET s, const struct sockaddr FAR *name, int namelen ); [ 윈도우의 연결 요청 함수 ]

TCP 기반 클라이언트의 구현 Hello World 클라이언트 프로그램 다시 보기 sock=socket(PF_INET, SOCK_STREAM,0); 클라이언트 소켓 생성 If(connect (sock, (struct sockaddr*) &serv_addr, sizeof(serv_addr) == -1 ) 서버로 연결 요청 데이터 수신 strl_len=read(sock, message, sizeof(message) –1); close (sock) 연결 종료

TCP 서버/클라이언트 함수 호출 관계 [그림 4-9] TCP 클라이언트 서버 함수 호출 관계

Iterative 서버의 구현 반복해서 클라이언트의 요청을 처리

Iterative 서버의 구현 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);

Iterative 서버의 구현 실행하기

에코(echo) 서버/클라이언트의 구현 에코 서버/클라이언트 기능 [그림 4-13] 에코 클라이언트 서버 모델

에코(echo) 서버/클라이언트의 구현 에코 서버의 구현

에코(echo) 서버/클라이언트의 구현 에코 클라이언트의 구현

윈도우즈 기반으로 구현하기 윈도우 기반 에코 서버

윈도우즈 기반으로 구현하기 윈도우 기반 에코 클라이언트

참고문헌 “데이터 통신과 네트워킹”, 이재광 외 2명, 교보문고 “TCP/IP 프로토콜”, 이재광외 5명, 미래컴 “Linux Socket Programming by Example”, Warren W. Gay, QUE '00

Q & A