네트워크 프로그래밍의 이해 School of Electronics and Information.

Slides:



Advertisements
Similar presentations
C 언어 Sun Moon University 1 of 25 C 언어 : 강의소개 강의실 : 산 211 담당교수 : 고경철 ( 정보통신공학과 ) 사무실 : 산학협력관 105B 면담시간 : 수업후 1 시간
Advertisements

Java Socket 통신 이개혁 정대준.
Understanding of Socket and File I/O
13장 소켓.
TCP/IP Socket Cover Slide 조태문.
Network Lab. Young-Chul Hwang
TCP Client/Server Program
TCP/IP 소켓 프로그래밍 - C 버전 중에서
Linux System Programming
Department of Computer Engineering
소켓 모델 주소 지정 in_addr_t inet_addr(const char *ip_address) 연결 지향 모델 (TCP)
TCP/IP Socket Cover Slide 조태문.
디바이스 드라이버 기초 디바이스 드라이버의 개요 파일 연산 디바이스 드라이버 등록 디바이스 드라이버 구성
디바이스 드라이버 개요 가상 디바이스드라이버 실습
Department of Computer Engineering
TCP Client/Server Program
Network Lab. Seoung Hyeon, Lee
호스트이름과 네트워크이름 찾기 (Hostname and Network Name Lookups)
Internet Address Conversion Functions
6장 비연결형 지향 프로토콜 Database Lab 강 우 석.
인터넷 주소 변환 School of Electronics and Information. Kyung Hee University.
14장 소켓.
한국마사회 ADSL 장애처리 방법 2003년 5월 16일.
Using Standard I/O on Sockets
Department of Computer Engineering
Department of Computer Engineering
한남대학교 컴퓨터공학과 컴퓨터 네트워크 실험실
Department of Computer Engineering
Department of Computer Engineering
멀티쓰레드 기반의 서버구현 School of Electronics and Information.
Socket Address Structure and Byte Ordering Functions
Internet Protocol and Programming
Department of Computer Engineering
Linux/UNIX Programming APUE (Files & Directories)
Term Project Team Member
Socket Address Structure and Byte Ordering Functions
Linux/UNIX Programming
Chapter 8 연결형 프로토콜 서버 발표자 : SE Lab 황 성 하
Department of Computer Engineering
파일 기술자 복사 파일 기술자 복사 : dup(2) 파일 기술자 복사 : dup2(3)
Advanced Socket Programming
파일 기술자 파일 기술자 현재 열려있는 파일을 구분하는 정수값 저수준 파일 입출력에서 열린 파일을 참조하는데 사용
4장 파일.
School of Electronics and Information. Kyung Hee University.
File I/O, TCP, Serial 입니다. 죄송합니다 ㅠ_ㅠ
Department of Computer Engineering
Department of Computer Science and Engineering
Socket Address Structure and Byte Ordering Functions
Socket Address Structure and Byte Ordering Functions
FILE I/O 번째주 Dept. of Computer Science & Engineering
소켓의 옵션 School of Electronics and Information. Kyung Hee University.
문자 디바이스 드라이버 임베디드 시스템.
[ 포털 사이트 연관검색어/자동완성 등록 서비스 ]
Linux Programming Spring 2008
Memory & Data Management.
School of Electronics and Information. Kyung Hee University.
Chapter 16 Socket Interface.
Department of Computer Engineering
Department of Computer Engineering
Department of Computer Engineering
인터넷 주소변환 School of Electronics and Information. Kyung Hee University.
Operating System Multiple Access Chatting Program using Multithread
Linux/UNIX Programming
Department of Computer Engineering
Internet Protocol and Programming
Department of Computer Engineering
소켓의 생성과 프로토콜의 설정 School of Electronics and Information.
C.
3장 파일 다루기 한빛미디어(주).
Department of Computer Engineering
Presentation transcript:

네트워크 프로그래밍의 이해 School of Electronics and Information. Kyung Hee University. Dae Sun Kim <dskim@networking.khu.ac.kr>

실습서버 zterm 사용 ID 실습날짜 폴더를 만들어 사용 163.180.140.190 (임시) Port:22 np01 ~ np59( ID, Password 동일, Password 반드시 수정) 실습날짜 폴더를 만들어 사용 Ex) 20050909

네트워크의 이해 네트워크란 End-System 들을 연결하는 하나의 System을 의미한다. 개인용 PC, 워크스테이션, PDA

Internet의 이해 멀리 떨어진 둘 이상의 네트워크가 연결되어 이뤄지는 거대한 네트워크를 의미한다. 인터넷의 구축을 위해서는 서로 다른 네트워크를 연결하는 장비가 필요하다. 이를 두고 라우터(Router)라 한다. Network A Router Network B

Client / Server 모델 Server Client Server와 Client는 프로그램이다. Machine이 아니다! Request Response Server Client

Server의 종류 Server는 일반적으로 Client에 비해 복잡하다. 두 가지 종류의 서버. Iterative Server : 한 순간에 하나의 클라이언트에게 응답한다. Concurrent Server : 동시에 여러 클라이언트에게 응답한다. Client Server Server Client Client Client

네트워크 프로그래밍의 이해 네트워크로 연결되어 있는 두 호스트간의 데이터 송수신. 파일 입출력과의 차이점은 데이터를 주고 받는 대상에 있다. 소켓(socket)이라는 장치를 사용하여 프로그래밍 한다. 소켓이란 원격에 존재하는 두 호스트를 연결시켜 주는 매개체 역할을 한다.

서버 소켓 구현의 이해 Telephone Server Socket 전화기 구입 전화번호 할당 케이블에 연결 수화기 든다! 소켓 생성 IP 주소 할당. 연결 요청 대기 상태 연결 수락!

서버 소켓 구현의 이해 순서 1. 전화를 걸고 싶은데 무엇이 필요합니까 #include <sys/types.h> 순서 1. 전화를 걸고 싶은데 무엇이 필요합니까 소켓의 생성을 요구한다. #include <sys/types.h> #include <sys/socket.h> int socket (int domain, int type, int protocol)

서버 소켓 구현의 이해 순서 2. 당신의 전화번호는 어떻게 되나요? #include <sys/socket.h> 순서 2. 당신의 전화번호는 어떻게 되나요? 주소의 할당을 요구한다(IP 주소, Port 정보). #include <sys/socket.h> int bind(int sockfd, struct sockaddr *myaddr, int addrlen)

서버 소켓 구현의 이해 순서 3. 전화기를 연결 하시겠습니까? #include <sys/socket.h> 순서 3. 전화기를 연결 하시겠습니까? 연결 요청 대기 상태로의 진입. #include <sys/socket.h> int listen(int sockfd, int backlog)

#include <sys/socket.h> 순서 4. 전화벨이 울립니다. 어서 전화 받으세요!!! 연결 요청 수락. #include <sys/socket.h> int accept(int sockfd, struct sockaddr *addr, int *addrlen)

클라이언트 소켓 구현의 이해 순서 1. 전화를 걸고 싶은데 무엇이 필요합니까? 순서 2. 전화를 걸어요 순서 1. 전화를 걸고 싶은데 무엇이 필요합니까? 소켓의 생성 순서 2. 전화를 걸어요 연결 요청 #include <sys/socket.h> int connect(int sockfd, struct sockaddr *serv_addr, int addrlen)

“Hello World!” 서버 / 클라이언트 프로그램 예제 helloworld_server.c, helloworld_client.c 실행하기

파일의 조작

저 수준 파일 입출력(Low-Level File Access) 리눅스 혹은 윈도우즈 자체에서 제공해 주는 파일 입출력 함수를 사용하여 파일을 관리( 파일의 생성 및 삭제, 데이터 입력 및 출력)하는 것을 의미함. 리눅스에서는 모든 것을 파일로 관리한다. -파일, 소켓, 표준 입력, 표준 출력. 파일에 파일 디스크립터를 할당해서 관리(파일 디스크립터는 정수)

파일 디스크립터(File Descriptor) 파일을 관리하기 위해서 모든 파일(파일, 소켓 표준 입력, 표준 출력)에 파일 디스크립터를 할당 해 준다. 파일 디스크립터 대 상 표준 입력 1 표준 출력 2 표준 에러 출력 Operating System Program 파일 A 5 소켓 B 소켓 C 7 파일 D

File open 및 close MODE 의 미 O_CREAT 필요한 경우 파일을 생성 O_TRUNC #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> int open(const char *path, int flag); #include <unistd.h> int close(int fildes); MODE 의 미 O_CREAT 필요한 경우 파일을 생성 O_TRUNC 존재하던 데이터를 모두 삭제 O_RDONLY 읽기 전용 모드로 파일을 오픈

Data read & write #include <unistd.h> ssize_t write(int fildes, const void * buf, size_t nbytes); #include <unistd.h> ssize_t read(int fildes, void *buf, size_t nbytes);

예제 확인 프로그램 예제 low_open.c, low_read.c, fd_seri.c 실행하기