제 16장 입력과 출력 스트림의 완벽 분리 TCP/IP Socket Programming… 데이터베이스 실험실

Slides:



Advertisements
Similar presentations
畵龍點睛 물질에 따른 전자파 차단 연구 연지은 ( 조 ) 서은빈 한서현 이의준. 목차 요즘 우리가 일상적으로 사용하는 것에는 전기 로 만들어져 있음 => 양의 전자파가 발생되어 사람의 몸을 훼손 => 전자파 차단 제품에 효능이 보장된 것 X => 다양한 물질로 실험.
Advertisements

ㅋㅋ 다른 집단과 명확히 구별되는 가치체계와 지식 그리고 그에 부합하는 기술을 가지고 있어야 한다. 가치체계 - 사회복지사윤리강령, 선서 등 기본요소 완성 지식 - 사회복지사 1 급 자격증 시험으로 완성 기술 - 명확하지 않으나 실습, 보수교육을 통해 완성 Client.
윤준혁 (12), 이주연 (13), 박혜원 (14), 안혜경 (15) 허니버터칩으로 알아본 SNS 의 영향 력.
지도교수 : 박진식 교수님 조 원 : 홍승기, 이병용, 백승준, 조근용, 조동현, 한정협, 이상하.
1 ‘ 우리나라의 주요공업 ’ - 정도웅, 주민혁, 안수진, 백경민, 엄다운, 박경찬 -.
수유부의 약물복용 시 주의점 발표자 조기성. 모유 수유의 장점 모유 수유의 장점은 ? 위장관 질환 발생감소 영아 돌연사 발생감소 아토피 질환 발생감소 정서적 안정.
똘기 : 채 익지 않은 과일. 똘기 소개 일명 발표동아리. 똘기는 발표에 대한 두려움을 가지고 있는 학우들에게 ‘ 자신감 ’ 을 키워줄 수 있도록 하자는 취지에서 만들어졌다. 평소 강의 시간보다 편안하고 자유롭게 발표해 볼 수 있는 기회를 제공함으로써 발표력 향상에 기여하는.
일 시 : (목) 장 소 : 문산종합사회복지관장) 파주시문산종합사회복지관 기관안내.
2013년도 2학기 학습튜터링 O.T.
미국의 미디어교육 신문방송학과 강진구 한인수 곽모란 이명현.
任員 在·不在 案內 시스템.
PRESENTATION 저온화상이란?
공부할 내용 조상들이 살던 곳 자연과 잘 어울리는 한옥 지방에 따라 서로 다른 집의 모양 섬 지방의 집
사랑, 데이트와 성적 자율성 :데이트 성폭력!!! 성폭력예방교육 전문강사 / 여성학 전공 신 순 옥.
퇴계와 율곡의 사회사상 비교 남 일 재 동서대학교 교수/ 정치학 박사 1. 퇴계 이황과 율곡 이이의 약전(略傳)
제3장 사회 복지 발달사.
Network Lab. Yong bae, Kim
Understanding of Socket and File I/O
대포나 미사일이 없던 옛날에는 먼 거리에 있는 적의 성을 어떻게 공격했을까?
가족상담 및 치료.
501. 군인들의 세상 502. 민정 이양과 한일회담 이선용.
쌓지 말고 해소하자 이 주휘 이 진영 전 민석 전 혜림.
2015년 하반기 소방교육 자 유 전 공 학 부 (금) 안녕하십니까 자유전공학부 행정실 입니다.
일 시 : 2013년 11월 12일(화) 15:00 발표자 : 동대문구보육반장 최 길 숙
쌍용차 회생계획안을 통한 투기자본(=먹튀자본) 수강과목: 회 계 학 원론 담당교수: 박 성 환 교수님
Network Lab. Young-Chul Hwang
TCP/IP 소켓 프로그래밍 - C 버전 중에서
Department of Computer Engineering
인공지능실험실 석사 2학기 김승겸 TCP/IP Socket Programming… 제 10장 멀티태스킹 기반의 서버구현 인공지능실험실 석사 2학기 김승겸
TCP Client/Server Program
Network Lab. Seoung Hyeon, Lee
얇지만 얇지 않은 TCP/IP 소켓 프로그래밍 C 2판
아동복지 제9장.
6장 비연결형 지향 프로토콜 Database Lab 강 우 석.
서울 메트로 노조파업 수강과목 : 노사 관계론 담당교수 : 정형진 교수님
Using Standard I/O on Sockets
데이터베이스 실험실 석사 2학기 김기훈 TCP/IP Socket Programming… 제 17장 멀티쓰레드 기반의 서버구현 데이터베이스 실험실 석사 2학기 김기훈
Department of Computer Engineering
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 7장 소켓 연결의 우아한 종료 인공지능실험실 석사 2학기 이희재
fork로 생성한 자식 프로세스에서 exec 함수군을 호출
21장. 문자와 문자열 처리 함수.
고급 입출력 함수 School of Electronics and Information. Kyung Hee University.
파일 기술자 복사 파일 기술자 복사 : dup(2) 파일 기술자 복사 : dup2(3)
Department of Computer Engineering
TCP/IP Socket Programming…
Network Programming(1)
17강 파일처리함수(1) 강 의 내 용 파일 입출력의 개념 파일포인터를 이용한 입출력 파일 입출력 과정
제13장 장애인 복지.
흡연 예방 보건교육 소중한 우리, 담배로부터 지켜요 서신초등학교.
보육교사 대상 꿈날개 매뉴얼.
글로벌한국사 2강 - 고조선과 단군할아버지- 신화 속 역사 읽기.
네트워크 프로그래밍의 이해 School of Electronics and Information.
Ⅰ. 가족복지 개관 가족복지론 최진령.
패시브하우스 신안산대학교 l 건축과 l 박효동, 박창준, 지예림.
아동학대 문제해결 과 목 : 사회복지실천론 교수님 : 김중구 교수님 학 번 : 강희정
정치개혁의 가능성 논의 권력구조 개편을 통하여 본 -개헌을 통한 정부형태의 변화를 중심으로 [한국정치론] 윤성이 교수님
Department of Computer Engineering
파일 입출력.
치료 레크레이션 프로그램 (지적 장애 대상) 과 목: 학 과: 학 번: 이 름: 제 출 일 자 담 당 교 수:
미술치료의 매체 인종문.
노년기 발달 장안대 행정법률과 세류반 정 오 손
태국 문학 욜라다 왓짜니 싸란차나 팟차라와라이 끼따야펀 르앙다우 타니다.
평생 저축해도 강남 아파트 못산다 학 과 : 회계학과 1학년 B반 과 목 : 회계학원론 담당교수: 박성환 교수님
콘텐츠 디자인 황아현.
Department of Computer Engineering
경영학의 상황학파에 대해서… 경제학과 3학년 최준용 회계학과 4학년 진현빈
워밍업 실뭉치 전달게임.
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
유예 X-FILE *조사자* 1301권희원 1315이예지 1317장아정 1322홍자현.
음파성명학 최종욱.
Presentation transcript:

제 16장 입력과 출력 스트림의 완벽 분리 TCP/IP Socket Programming… 데이터베이스 실험실 박사 2학기 장창복

스트림의 분리 스트림(Stream) 스트림을 분리하는 이유는 무엇인가? 스트림을 분리했을 경우 발생하는 문제점 데이터가 이동하는 흐름 파일로부터 데이터를 송수신하기 위해 놓여진 “일종의 다리” 스트림을 분리하는 이유는 무엇인가? 소켓을 생성할 때 리턴되는 파일 디스크립터를 이용 입력, 출력, 입출력 겸용 스트림을 생성할 수 있음 입력, 출력 스트림의 분리 구현이 쉽고 전체적인 성능 향상을 기대할 수 있음 입출력 겸용 스트림의 생성 입출력 전환시 버퍼를 비워주는 작업 필요 스트림을 분리했을 경우 발생하는 문제점 EOF 메시지를 전송해 줘야 하는 상황 입력과 출력용 파일 포인터가 각각 존재하므로, 출력용 파일 포인터를 이용해서 fclose함수를 호출 문제 발생

스트림의 분리 서버 코드(exam7) int serv_sock; int clnt_sock; FILE* rstrm; FILE* wstrm; … serv_sock=socket(PF_INET, SOCK_STEAM,0); clnt_sock=accept(serv_sock,(struct sockaddr*)&clnt_addr,&clnt_addr_size); rstrm=fdopen(clnt_sock,”r”); wstrm=fdopen(clnt_sock,”w”); fputs(“FROM SERVER : Hello?\n”,wstrm); fputs(“I like network programming\n”,wstrm); fputs(“I like socket programming\n”,wstrm); fflush(wstrm); fclose(wstrm); fgets(buf, sizeof(buf), rstrm); fputs(buf,stdout); fclose(rstrm);

스트림의 분리 클라이언트 코드(exam8) int sock; FILE* rstrm; FILE* wstrm; … sock=socket(PF_INET, SOCK_STEAM,0); rstrm=fdopen(sock,”r”); wstrm=fdopen(sock,”w”); while(1) { if(fgets(buf, sizeof(buf), rstrm) == null) break; fputs(buf, stdout); fflush(stdout); } fputs(“From CLIENT : Thank you!\n”, wstrm); fflush(wstrm); fclose(writeFP); fclose(readFP);

스트림의 분리 exam7, exam8 파일 실행 예

스트림의 분리 서버 클라이언트 연결요청 EOF 메시지 1(FROM SERVER : Hello?\n) 메시지 2(I like network programming\n) 메시지 3(I like socket programming\n) EOF 메시지4(From CLIENT : Thank you!) 전달 되지 않음

파일 디스크립터의 복사와 스트림의 분리 스트림 종료 시의 문제점과 해결방안 입력용 파일 포인터와 출력용 파일 포인터 하나의 파일 디스크립터를 기반으로 생성 fclose함수 호출시 어떠한 파일 포인터를 인자로 전달하더라도, 파일 디스크립터의 종료와 동시에 소켓도 종료됨 FILE * File Descriptor SOCKET 1. fclose 2. File Descriptor 종료 3. SOCKET 종료

파일 디스크립터의 복사와 스트림의 분리 Half-close 방법 fdopen(fd, “r”) 파일 포인터(입력) 하나의 파일 디스크립터를 복사하여 두개로 만들고 가각의 디스크립터를 기반으로 파일 포인터를 획득 하나의 소켓에 접근할 수 있는 파일 디스크립터가 두 개 이상인 경우 모든 파일 디스크립터가 종료되어야만 해당 소켓이 종료됨 fdopen(fd, “r”) 파일 포인터(입력) 파일 디스크립터 파일 디스크립터 복사 SOCKET 파일 포인터(입력) 파일 디스크립터 fdopen(fd, “w”)

파일 디스크립터의 복사와 스트림의 분리 파일 디스크립터 복사하기 파일 디스크립터의 복사 디스크립터 복사 함수 파일에 접근할 수 있는 파일 디스크립터 정수 하나를 더 만들어 내는 것을 의미함 디스크립터 복사 함수 int dup(int fildes); int dup2(int fildes, int fildes2) fildes: 복사하고자 원하는 파일 디스크립터 fildes2: dup2 함수에서 복사되는 파일 디스크립터의 값을 명시적으로 지정

파일 디스크립터의 복사와 스트림의 분리 파일 디스크립터 복사 후 스트림 생성하기(exam9) int serv_sock; int clnt_sock; FILE* rstrm; FILE* wstrm; … serv_sock=socket(PF_INET, SOCK_STEAM,0); clnt_sock=accept(serv_sock,(struct sockaddr*)&clnt_addr,&clnt_addr_size); rstrm=fdopen(clnt_sock,”r”); wstrm=fdopen(dup(clnt_sock),”w”); fputs(“FROM SERVER : Hello?\n”,wstrm); fputs(“I like network programming\n”,wstrm); fputs(“I like socket programming\n”,wstrm); fflush(wstrm); fclose(wstrm); fgets(buf, sizeof(buf), rstrm); fputs(buf,stdout); fclose(rstrm);

파일 디스크립터의 복사와 스트림의 분리 exam8, exam9 파일 실행 예

Q & A