SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
컴퓨터 네트워크 Program Homework
20800577
장 호 상
목 차
1. 데이터 송수신 흐름도
a. homework 1
b. homework 2
c. homework 3
2. 세부 코드와 설명
a. homework 1
b. homework 2
c. homework 3
3. 소스코드
a. homework 1
b. homework 2
c. homework 3
4. 문제점 및 해결방안
1. 데이터 송수신 흐름도
a. Homework 1
기본적인 TCP 흐름과 같다.
* 자료 송수신
b. homework 2
homework1에서 자료 송수신 부분만 다르며 나머지는 동일하다.
int Student_Number
show Data(Student Information)
Data Load(data.txt)
Search(Student_Number)
struct Student_Information
TCP Server
TCP Client
TCP Client
string filename(user input)
int filesize(use lseek())
TCP Server
while(filesize ==
send filesize){
send (file)
}
while(filesize ==
received filesize){
recv (file)
}
open newfile(filename)
loop
c. homework 3
* 데이터 송수신
UDP Client UDP server
sendto(☎,buffer)
recvfrom(☎,buffer)
sendto(☎,buffer)
recvfrom(☎,buffer)
UDP Client
UDP Server
string filename(user input)
open newfile(filename)
while(filesize ==
received filesize){
recvfrom (file)
}
while(filesize ==
send filesize){
sendto (file)
}
int filesize(use lseek())
2. 세부 코드와 설명 - comment 로 설명
a. homework 1
Client
Server
b. homework 2
Client
Server
c. homework 3
Client
Server
3. 소스코드
a. homework 1
Client - hw1_client.c
client와 server에 모두 쓰이는 header
Server - hw1_server.c
b. homework 2
Client - hw2_client.c
client와 server에 모두 쓰이는 header
homework 1에서 추가된 header
Server - hw2_server.c
c. Homework 3 - include 한 header는 hw2 와 동일
Client - hw3_client.c
Server - hw3_server.c
4. 문제점 및 해결방안
- Homework 1에는 특별한 문제점 없음.
- Homework 2에서 filename과 filesize를 서버 측에서 어떻게 구별 할 것인가?
: filename을 보내고 lseek(파일 사이즈 측정용) 함수를 실행함으로써 Server에게
시간적 여유를 줄 수 있었다.
- Homework 3에서 실제 전송한 파일사이즈 보다 서버에서 받은 파일 사이즈가 더
큰 현상이 발생한다.
- Homework 3에서 전송을 종료하는 조건을 클라이언트에서 파일 전송 전 보내온 파
일 사이즈와 실제 서버에 받아진 파일 사이즈를 비교해서 받아진 파일 사이즈가
더 커지면 종료되게 하였다.
-> 중간에 데이터가 손실 되면 전송이 중지 되지 않는다.
-> 바로 전 문제점도 이것이 원인으로 봄
해결방안 : 일정 시간이상 클라이언트에서 서버로 보내는 데이터가 없으면
종료하게 함.
* Buffer Size 관련
수신 쪽 Buffer의 Size가 커야 손실 없이 데이터가 받아 진다. 이유는 어떤
Delay에 의해 앞, 뒤로 불필요한 더미 데이터가 보내질 수 있기 때문이다. 그래서 수신 쪽
Buffer는 송신 쪽 Buffer에 비해 커야 한다.

Contenu connexe

Tendances

Browser Engineering - Ch1 Summary
Browser Engineering - Ch1 SummaryBrowser Engineering - Ch1 Summary
Browser Engineering - Ch1 SummaryJae-yeol Lee
 
HTTP 완벽가이드 4장 커넥션관리
HTTP 완벽가이드 4장 커넥션관리HTTP 완벽가이드 4장 커넥션관리
HTTP 완벽가이드 4장 커넥션관리박 민규
 
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링Hyunsoo Jung
 
Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명진우 이
 
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초JinuNoh
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약세빈 정
 
MsgPack 정리
MsgPack 정리MsgPack 정리
MsgPack 정리Seokmin No
 
Tcp server / client
Tcp server / clientTcp server / client
Tcp server / client문익 장
 
F5 spdy 솔루션 선관
F5 spdy 솔루션 선관F5 spdy 솔루션 선관
F5 spdy 솔루션 선관itian-f5
 
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형Minchul Jung
 
TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수Yeon Soo Kim
 
더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2EungJun Yi
 
HTTP 완벽가이드 7장 캐시
HTTP 완벽가이드 7장 캐시HTTP 완벽가이드 7장 캐시
HTTP 완벽가이드 7장 캐시박 민규
 
이디스커버리 솔루션의 구조
이디스커버리 솔루션의 구조이디스커버리 솔루션의 구조
이디스커버리 솔루션의 구조Park Youngsoo
 

Tendances (20)

Browser Engineering - Ch1 Summary
Browser Engineering - Ch1 SummaryBrowser Engineering - Ch1 Summary
Browser Engineering - Ch1 Summary
 
Whats new rails 7
Whats new   rails 7Whats new   rails 7
Whats new rails 7
 
HTTP 완벽가이드 4장 커넥션관리
HTTP 완벽가이드 4장 커넥션관리HTTP 완벽가이드 4장 커넥션관리
HTTP 완벽가이드 4장 커넥션관리
 
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링
 
Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명
 
네트워크 기본
네트워크 기본네트워크 기본
네트워크 기본
 
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약
 
MsgPack 정리
MsgPack 정리MsgPack 정리
MsgPack 정리
 
Tcp server / client
Tcp server / clientTcp server / client
Tcp server / client
 
F5 spdy 솔루션 선관
F5 spdy 솔루션 선관F5 spdy 솔루션 선관
F5 spdy 솔루션 선관
 
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
 
DNS & Mail Server Study
DNS & Mail Server StudyDNS & Mail Server Study
DNS & Mail Server Study
 
TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수
 
더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2
 
HTTP 완벽가이드 7장 캐시
HTTP 완벽가이드 7장 캐시HTTP 완벽가이드 7장 캐시
HTTP 완벽가이드 7장 캐시
 
이디스커버리 솔루션의 구조
이디스커버리 솔루션의 구조이디스커버리 솔루션의 구조
이디스커버리 솔루션의 구조
 
Nodejs_chapter3
Nodejs_chapter3Nodejs_chapter3
Nodejs_chapter3
 
프로젝트 #1 최종
프로젝트 #1 최종프로젝트 #1 최종
프로젝트 #1 최종
 
TCP/IP
TCP/IPTCP/IP
TCP/IP
 

En vedette

18.소공 final 발표
18.소공 final 발표18.소공 final 발표
18.소공 final 발표호상 장
 
METRIFIT for Elite Athletes
METRIFIT for Elite AthletesMETRIFIT for Elite Athletes
METRIFIT for Elite AthletesPeter Larkin
 
10.dsd 4 bit-alu
10.dsd 4 bit-alu10.dsd 4 bit-alu
10.dsd 4 bit-alu호상 장
 
METRIFIT for Swimming
METRIFIT for SwimmingMETRIFIT for Swimming
METRIFIT for SwimmingPeter Larkin
 
Metrifit for GAA Clubs
Metrifit for GAA ClubsMetrifit for GAA Clubs
Metrifit for GAA ClubsPeter Larkin
 
Metrifit functionality overview
Metrifit functionality overviewMetrifit functionality overview
Metrifit functionality overviewPeter Larkin
 
11.dsd alarmed clock
11.dsd alarmed clock11.dsd alarmed clock
11.dsd alarmed clock호상 장
 
Metrifit introduction presentation
Metrifit introduction presentationMetrifit introduction presentation
Metrifit introduction presentationPeter Larkin
 
1.c term project report
1.c term project report1.c term project report
1.c term project report호상 장
 
4. 공설입 로봇축구 보고서
4. 공설입 로봇축구 보고서4. 공설입 로봇축구 보고서
4. 공설입 로봇축구 보고서호상 장
 
3. 공학설계 입문 라인트레이서 보고서
3. 공학설계 입문 라인트레이서 보고서3. 공학설계 입문 라인트레이서 보고서
3. 공학설계 입문 라인트레이서 보고서호상 장
 
METRIFIT Functionality Overview
METRIFIT Functionality OverviewMETRIFIT Functionality Overview
METRIFIT Functionality OverviewPeter Larkin
 
METRIFIT for Team Sports
METRIFIT for Team SportsMETRIFIT for Team Sports
METRIFIT for Team SportsPeter Larkin
 
13.dsd 도어락 최종보고서_2분반 6조
13.dsd 도어락 최종보고서_2분반 6조13.dsd 도어락 최종보고서_2분반 6조
13.dsd 도어락 최종보고서_2분반 6조호상 장
 
15.ai term project_final
15.ai term project_final15.ai term project_final
15.ai term project_final호상 장
 

En vedette (16)

18.소공 final 발표
18.소공 final 발표18.소공 final 발표
18.소공 final 발표
 
METRIFIT for Elite Athletes
METRIFIT for Elite AthletesMETRIFIT for Elite Athletes
METRIFIT for Elite Athletes
 
10.dsd 4 bit-alu
10.dsd 4 bit-alu10.dsd 4 bit-alu
10.dsd 4 bit-alu
 
METRIFIT for Swimming
METRIFIT for SwimmingMETRIFIT for Swimming
METRIFIT for Swimming
 
Metrifit for GAA Clubs
Metrifit for GAA ClubsMetrifit for GAA Clubs
Metrifit for GAA Clubs
 
Metrifit
MetrifitMetrifit
Metrifit
 
Metrifit functionality overview
Metrifit functionality overviewMetrifit functionality overview
Metrifit functionality overview
 
11.dsd alarmed clock
11.dsd alarmed clock11.dsd alarmed clock
11.dsd alarmed clock
 
Metrifit introduction presentation
Metrifit introduction presentationMetrifit introduction presentation
Metrifit introduction presentation
 
1.c term project report
1.c term project report1.c term project report
1.c term project report
 
4. 공설입 로봇축구 보고서
4. 공설입 로봇축구 보고서4. 공설입 로봇축구 보고서
4. 공설입 로봇축구 보고서
 
3. 공학설계 입문 라인트레이서 보고서
3. 공학설계 입문 라인트레이서 보고서3. 공학설계 입문 라인트레이서 보고서
3. 공학설계 입문 라인트레이서 보고서
 
METRIFIT Functionality Overview
METRIFIT Functionality OverviewMETRIFIT Functionality Overview
METRIFIT Functionality Overview
 
METRIFIT for Team Sports
METRIFIT for Team SportsMETRIFIT for Team Sports
METRIFIT for Team Sports
 
13.dsd 도어락 최종보고서_2분반 6조
13.dsd 도어락 최종보고서_2분반 6조13.dsd 도어락 최종보고서_2분반 6조
13.dsd 도어락 최종보고서_2분반 6조
 
15.ai term project_final
15.ai term project_final15.ai term project_final
15.ai term project_final
 

Similaire à 19.컴퓨터 네트워크 program homework

비동기 파일 로딩
비동기 파일 로딩비동기 파일 로딩
비동기 파일 로딩Bongseok Cho
 
Intranet query tuning (example)
Intranet query tuning (example)Intranet query tuning (example)
Intranet query tuning (example)중선 곽
 
서버성능개선 류우림
서버성능개선 류우림서버성능개선 류우림
서버성능개선 류우림우림 류
 
리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초Yu Yongwoo
 
HTTP 발표자료 - 김연수
HTTP 발표자료 - 김연수HTTP 발표자료 - 김연수
HTTP 발표자료 - 김연수Yeon Soo Kim
 
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기SangJin Kang
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용noerror
 
고급시스템프로그래밍
고급시스템프로그래밍고급시스템프로그래밍
고급시스템프로그래밍kimkiweon
 
Node-express 채팅 서버 개발기
Node-express 채팅 서버 개발기Node-express 채팅 서버 개발기
Node-express 채팅 서버 개발기정웅 박
 
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요dgmit2009
 
IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10hungrok
 
Optimizing merge program
Optimizing merge program Optimizing merge program
Optimizing merge program CHANG-HYUN LEE
 
한대희 Web proxy_개발_2006년11월_pas_ktf
한대희 Web proxy_개발_2006년11월_pas_ktf한대희 Web proxy_개발_2006년11월_pas_ktf
한대희 Web proxy_개발_2006년11월_pas_ktfDaehee Han
 
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTOiFunFactory Inc.
 

Similaire à 19.컴퓨터 네트워크 program homework (20)

비동기 파일 로딩
비동기 파일 로딩비동기 파일 로딩
비동기 파일 로딩
 
Intranet query tuning (example)
Intranet query tuning (example)Intranet query tuning (example)
Intranet query tuning (example)
 
Web server
Web serverWeb server
Web server
 
Portfolio
PortfolioPortfolio
Portfolio
 
서버성능개선 류우림
서버성능개선 류우림서버성능개선 류우림
서버성능개선 류우림
 
리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초
 
HTTP 발표자료 - 김연수
HTTP 발표자료 - 김연수HTTP 발표자료 - 김연수
HTTP 발표자료 - 김연수
 
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용
 
고급시스템프로그래밍
고급시스템프로그래밍고급시스템프로그래밍
고급시스템프로그래밍
 
Node-express 채팅 서버 개발기
Node-express 채팅 서버 개발기Node-express 채팅 서버 개발기
Node-express 채팅 서버 개발기
 
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
 
IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10
 
Warp
WarpWarp
Warp
 
Optimizing merge program
Optimizing merge program Optimizing merge program
Optimizing merge program
 
3장
3장3장
3장
 
한대희 Web proxy_개발_2006년11월_pas_ktf
한대희 Web proxy_개발_2006년11월_pas_ktf한대희 Web proxy_개발_2006년11월_pas_ktf
한대희 Web proxy_개발_2006년11월_pas_ktf
 
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
 
Servlet3
Servlet3Servlet3
Servlet3
 
Git
Git Git
Git
 

Plus de 호상 장

장호상, 유재우 Program structure 130529
장호상, 유재우 Program structure 130529장호상, 유재우 Program structure 130529
장호상, 유재우 Program structure 130529호상 장
 
장호상, 유재우 진척상황 보고 130522
장호상, 유재우 진척상황 보고 130522장호상, 유재우 진척상황 보고 130522
장호상, 유재우 진척상황 보고 130522호상 장
 
장호상, 유재우 Wbs, gant chart 130515
장호상, 유재우 Wbs, gant chart 130515장호상, 유재우 Wbs, gant chart 130515
장호상, 유재우 Wbs, gant chart 130515호상 장
 
17.tigerteam design document
17.tigerteam design document17.tigerteam design document
17.tigerteam design document호상 장
 
16.h trainer user manual
16.h trainer user manual16.h trainer user manual
16.h trainer user manual호상 장
 
14.c++ final term
14.c++ final term14.c++ final term
14.c++ final term호상 장
 
12.dsd dicegame
12.dsd dicegame12.dsd dicegame
12.dsd dicegame호상 장
 
8.login desing serial adder
8.login desing serial adder8.login desing serial adder
8.login desing serial adder호상 장
 
2.공학설계입문피피티
2.공학설계입문피피티2.공학설계입문피피티
2.공학설계입문피피티호상 장
 
장호상, 유재우 요구사항 분석 130501
장호상, 유재우 요구사항 분석 130501장호상, 유재우 요구사항 분석 130501
장호상, 유재우 요구사항 분석 130501호상 장
 
장호상 유재우 문제재정의-130417
장호상 유재우 문제재정의-130417장호상 유재우 문제재정의-130417
장호상 유재우 문제재정의-130417호상 장
 
One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사호상 장
 
장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327호상 장
 

Plus de 호상 장 (13)

장호상, 유재우 Program structure 130529
장호상, 유재우 Program structure 130529장호상, 유재우 Program structure 130529
장호상, 유재우 Program structure 130529
 
장호상, 유재우 진척상황 보고 130522
장호상, 유재우 진척상황 보고 130522장호상, 유재우 진척상황 보고 130522
장호상, 유재우 진척상황 보고 130522
 
장호상, 유재우 Wbs, gant chart 130515
장호상, 유재우 Wbs, gant chart 130515장호상, 유재우 Wbs, gant chart 130515
장호상, 유재우 Wbs, gant chart 130515
 
17.tigerteam design document
17.tigerteam design document17.tigerteam design document
17.tigerteam design document
 
16.h trainer user manual
16.h trainer user manual16.h trainer user manual
16.h trainer user manual
 
14.c++ final term
14.c++ final term14.c++ final term
14.c++ final term
 
12.dsd dicegame
12.dsd dicegame12.dsd dicegame
12.dsd dicegame
 
8.login desing serial adder
8.login desing serial adder8.login desing serial adder
8.login desing serial adder
 
2.공학설계입문피피티
2.공학설계입문피피티2.공학설계입문피피티
2.공학설계입문피피티
 
장호상, 유재우 요구사항 분석 130501
장호상, 유재우 요구사항 분석 130501장호상, 유재우 요구사항 분석 130501
장호상, 유재우 요구사항 분석 130501
 
장호상 유재우 문제재정의-130417
장호상 유재우 문제재정의-130417장호상 유재우 문제재정의-130417
장호상 유재우 문제재정의-130417
 
One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사
 
장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327
 

19.컴퓨터 네트워크 program homework

  • 1. 컴퓨터 네트워크 Program Homework 20800577 장 호 상 목 차 1. 데이터 송수신 흐름도 a. homework 1 b. homework 2 c. homework 3 2. 세부 코드와 설명 a. homework 1 b. homework 2 c. homework 3 3. 소스코드 a. homework 1 b. homework 2 c. homework 3 4. 문제점 및 해결방안
  • 2. 1. 데이터 송수신 흐름도 a. Homework 1 기본적인 TCP 흐름과 같다. * 자료 송수신 b. homework 2 homework1에서 자료 송수신 부분만 다르며 나머지는 동일하다. int Student_Number show Data(Student Information) Data Load(data.txt) Search(Student_Number) struct Student_Information TCP Server TCP Client TCP Client string filename(user input) int filesize(use lseek()) TCP Server while(filesize == send filesize){ send (file) } while(filesize == received filesize){ recv (file) } open newfile(filename) loop
  • 3. c. homework 3 * 데이터 송수신 UDP Client UDP server sendto(☎,buffer) recvfrom(☎,buffer) sendto(☎,buffer) recvfrom(☎,buffer) UDP Client UDP Server string filename(user input) open newfile(filename) while(filesize == received filesize){ recvfrom (file) } while(filesize == send filesize){ sendto (file) } int filesize(use lseek())
  • 4. 2. 세부 코드와 설명 - comment 로 설명 a. homework 1 Client Server b. homework 2 Client
  • 6. 3. 소스코드 a. homework 1 Client - hw1_client.c client와 server에 모두 쓰이는 header
  • 8. b. homework 2 Client - hw2_client.c client와 server에 모두 쓰이는 header homework 1에서 추가된 header
  • 10. c. Homework 3 - include 한 header는 hw2 와 동일 Client - hw3_client.c
  • 12. 4. 문제점 및 해결방안 - Homework 1에는 특별한 문제점 없음. - Homework 2에서 filename과 filesize를 서버 측에서 어떻게 구별 할 것인가? : filename을 보내고 lseek(파일 사이즈 측정용) 함수를 실행함으로써 Server에게 시간적 여유를 줄 수 있었다. - Homework 3에서 실제 전송한 파일사이즈 보다 서버에서 받은 파일 사이즈가 더 큰 현상이 발생한다. - Homework 3에서 전송을 종료하는 조건을 클라이언트에서 파일 전송 전 보내온 파 일 사이즈와 실제 서버에 받아진 파일 사이즈를 비교해서 받아진 파일 사이즈가 더 커지면 종료되게 하였다. -> 중간에 데이터가 손실 되면 전송이 중지 되지 않는다. -> 바로 전 문제점도 이것이 원인으로 봄 해결방안 : 일정 시간이상 클라이언트에서 서버로 보내는 데이터가 없으면 종료하게 함. * Buffer Size 관련 수신 쪽 Buffer의 Size가 커야 손실 없이 데이터가 받아 진다. 이유는 어떤 Delay에 의해 앞, 뒤로 불필요한 더미 데이터가 보내질 수 있기 때문이다. 그래서 수신 쪽 Buffer는 송신 쪽 Buffer에 비해 커야 한다.