TCP/IP Socket Programming…

Slides:



Advertisements
Similar presentations
Linux/UNIX Programming
Advertisements

2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
Network Lab. Byoung-Son, Choi
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
Network Lab. Young-Chul Hwang
Department of Computer Science and Engineering
Department of Computer Engineering
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
Network Lab. Seoung Hyeon, Lee
Department of Computer Science and Engineering
조 병 규 Software Quality Lab. 한국교통대학교
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express Slide 1 (of 23)
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
제 14장 Multicast & Broadcast
Department of Computer Engineering
Department of Computer Engineering
Department of Computer Engineering
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 7장 소켓 연결의 우아한 종료 인공지능실험실 석사 2학기 이희재
12장 파이프.
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
고급 입출력 함수 School of Electronics and Information. Kyung Hee University.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 24. 파일 입출력.
Chapter 06. UDP 서버/클라이언트.
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 9장 소켓의 다양한 옵션 인공지능실험실 박사 1학기 장성만
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
12장 파일처리와 매크로 파일 입출력 함수 문자 입출력 함수 라인 입출력 함수 불록 입출력 함수 매크로.
File I/O, TCP, Serial 입니다. 죄송합니다 ㅠ_ㅠ
C언어 프로그래밍의 이해 Ch14. 파일 입출력.
Understanding of Socket and File I/O
11 표준 입출력과 파일 입출력 데이터를 읽고 쓰는 다양한 방법 익히기!.
Department of Computer Engineering
Department of Computer Science and Engineering
13장 고급 입출력 함수 박사 4학기 최 성자.
14장. 포인터와 함수에 대한 이해.
Socket Address Structure and Byte Ordering Functions
Socket Address Structure and Byte Ordering Functions
9장 파일 입출력.
Department of Computer Engineering
17강 파일처리함수(1) 강 의 내 용 파일 입출력의 개념 파일포인터를 이용한 입출력 파일 입출력 과정
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
Linux/UNIX Programming
Device Driver 임베디드 시스템 I.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
Go Lang 리뷰 이동은.
24장. 파일 입출력.
01_ C++ 스타일의 입출력 02_ C 스타일의 입출력
School of Electronics and Information. Kyung Hee University.
데이터베이스실험실 석사 2학기 조정희 TCP/IP Socket Programming… 제 18장 윈도우 기반 쓰레드 사용하기 데이터베이스실험실 석사 2학기 조정희
Department of Computer Engineering
Linux/UNIX Programming
Understanding of Socket and File I/O
제 16장 입력과 출력 스트림의 완벽 분리 TCP/IP Socket Programming… 데이터베이스 실험실
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Chapter 04. TCP 서버/클라이언트.
MIDP 네트워크 프로그래밍 ps lab 김윤경.
구조체(struct)와 공용체(union)
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 제 8장 도메인 이름과 인터네 주소 인공지능실험실 박사 1학기 장성만
Chapter 12 파일 입출력.
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
Department of Computer Engineering
06. 디바이스의 등록과 해제 김진홍
Network Lab. Young-Chul Hwang
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
Completion Port기반의 채팅프로그램
윈도우에서의 유니코드.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
13. 포인터와 배열! 함께 이해하기.
Presentation transcript:

TCP/IP Socket Programming… 제 15장 소켓과 표준 입출력 데이터베이스 실험실 박사 2학기 장창복

서론 15장 소켓과 표준 입.출력 16장 입력과 출력 스트림의 완벽 분리 표준 입출력 함수를 이용한 호스트간의 데이터 전송 파일을 다룰 때 사용한 fopen, fclose, feof, fgetc 함수 이용 16장 입력과 출력 스트림의 완벽 분리 fopen 함수를 호출해서 파일을 열고 나면, 파일로부터 데이터를 송수신할 수 있음 스트림(stream)이 생성되었다고 표현 파일 디스크립터를 가지고 입력과 출력 스트림을 분리함

표준 입.출력 함수의 장점 이식성(Portability) 효율성 시스템 함수들의 이용 운영체제 종속적 모든 시스템이 지원해 주는 표준화된 함수 사용 ANSI 표준 c의 입출력 함수 효율성 표준 입출력 버퍼와 소켓 생성시 커널에서 제공하는 버퍼 존재 커널 버퍼 흐름 제어 목적(데이터 손실시 재전송) 표준 입출력 버퍼 성능 향상 목적 : 여러 데이터들을 하나의 패킷으로 전송함 전송시 필요한 헤더의 바이트를 줄임

표준 입.출력 함수의 장점 표준 입출력 함수를 통한 파일 생성의 예 File *fp fp = fopen(“test.dat”,”w”); if(fp == null) error_handling(“file open error”); fputs(“Network Programming\n\n”,fp); fclose(fp)

표준 입.출력 함수의 장점 리눅스에서 제공하는 시스템 함수를 이용한 파일 생성 예 int fildes; char str[] = “socket programming\n\n”; fildes = open(“data.daa”, O_WRONLY|O_CREAT|O_TRUNC); if(fildes == -1) error_handling(“file open error”); write(fildes, str, sizeof(str)-1); close(fildes)

표준 입.출력 함수의 장점 표준 입출력 함수 시스템 입출력 함수 소켓 생성 파일 포인터 이용 파일 디스크립터 FILE 구조체의 포인터 시스템 입출력 함수 파일 디스크립터 시스템 함수를 통해서 파일을 여는 경우에 리턴되는 정수 소켓 생성 파일 디스크립터 리턴 표준 입출력 함수를 사용하기 위해 파일 디스크립터를 가지고 파일 포인터를 만들어야만 함

표준 입출력 함수의 사용 파일 디스크립터를 이용하여 파일 포인터 생성하기 fdopen 함수 File Des Data.dat 파일 디스크립터를 이용하여 파일 포인터를 생성 FILE * fdopen(int fildes, const char * mode); fildes : 대상 파일을 가리키는 파일 디스크립터 mode : 파일 포인터 모드 읽기(r), 쓰기(w) File Des Data.dat fdopen 호출 FILE *

표준 입출력 함수의 사용 파일 디스크립터를 이용한 파일 포인터 생성 예제(exam3) File *fp fclose(fp) int fildes; File *fp fildes = open(“data.dat”, O_WRONLY|O_CREAT|O_TRUNC); if(fildes == -1) error_handling(“file open error”); fp=fdopen(fildes,”w”); fputs(“Network Programming\n\n”,fp); fclose(fp)

표준 입출력 함수의 사용 exam3 파일 실행 결과

표준 입출력 함수의 사용 파일 포인터를 이용하여 파일 디스크립터 얻기 fileno 함수 fileno 함수 사용 예(exam4) int fileno(FILE * stream); Stream : 파일 포인터 fileno 함수 사용 예(exam4) int fildes; File *fp fildes = open(“data.daa”, O_WRONLY|O_CREAT|O_TRUNC); if(fildes == -1) error_handling(“file open error”); printf(“First file descriptor : %d \n”, fildes); fp=fdopen(fildes,”w”); fputs(“TCP/IP Socket programming\n\n”,fp); printf(“Second file descriptor : %d \n\n”, fileno(fp)); fclose(fp)

표준 입출력 함수의 사용 exam4 파일 실행 결과

소켓 기반의 표준 입출력 함수의 사용 표준 입출력 함수를 사용하는 에코 서버(exam5) int serv_sock; int clnt_sock; FILE* readFP; FILE* writeFP; … serv_sock=socket(PF_INET, SOCK_STEAM,0); clnt_sock=accept(serv_sock,(struct sockaddr*)&clnt_addr,&clnt_addr_size); readFP=fdopen(clnt_sock,”r”); writeFP=fdopen(clnt_sock,”w”); while(!feof(readFP)) { fgets(message, BUFSIZE, readFP); fputs(message, writeFP); fflush(writeFP); } fclose(writeFP); fclose(readFP);

소켓 기반의 표준 입출력 함수의 사용 표준 입출력 함수를 사용하는 에코 클라이언트(exam6) int sock; FILE* readFP; FILE* writeFP; … sock=socket(PF_INET, SOCK_STEAM,0); readFP=fdopen(sock,”r”); writeFP=fdopen(sock,”w”); fputs(message, writeFP) fflush(writeFP); fgets(message, BUFSIZE, readFP); printf(“서버로부터 전송된 메시지: %s \n, message); fclose(writeFP); fclose(readFP);

소켓 기반의 표준 입출력 함수의 사용 exam5, exam6 파일 실행 예

Q & A