[시스템프로그래밍실습] Socket을 사용하여 FTP command "ls"를 수행하는 프로그램
- 최초 등록일
- 2015.06.19
- 최종 저작일
- 2014.04
- 14페이지/
MS 워드
- 가격 2,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
본 프로그램은 Socket을 사용해서 FTP command “ls”를 수행하는 프로그램이다.
목차
1. Program Introduction - overall description, backgrounds
2. Algorithm specification - pseudo code, flow chart
3. Source Code
4. References
본문내용
본 프로그램은 Socket을 사용해서 FTP command “ls”를 수행하는 프로그램이다. client와 sever간에 수행하는 작업 절차는 다음과 같다.
클라이언트는 socket() 함수를 사용하여 클라이언트 소켓을 생성한다. 그리고 서버 연결에 필요한 주소 구조체를 초기화하고 도메인과 포트번호 그리고 IP주소를 설정한다. 후에 connect() 함수를 사용하여 서버에 연결을 요청한다. 서버는 서버 소켓을 생성하고 bind() 함수를 이용하여 서버에서 연결을 허락할 주소와 사용할 포트를 지정한다. listen() 함수로 클라이언트로부터의 접속 요구를 기다린다. 클라이언트의 연결에 대해 accept()를 호출함으로써 클라이언트 소켓 정보를 얻는다. 연결 요구가 받아들여지면 서버는 client IP주소와 PORT번호를 출력한다. 이제 클라이언트 프롬프트에서는 사용자에게 user command를 입력 받아 FTP command로 변환한다. ls는 NLST로, quit는 QUIT 변환하고 변환된 FTP command를 write()함수를 사용해 서버에게 보낸다. 그럼 서버는 클라이언트 측으로부터 read()함수를 사용하여 FTP command를 받은 후 FTP command를 수행하고 결과를 write()함수로 클라이언트에게 보낸다. read()함수로 서버로부터 결과를 받은 클라이언트는 결과에 대한 수행을 한다. 즉, 결과가 NLST일 경우에는 디렉토리와 파일 리스트를 출력하고, QUIT일 경우에는 클라이언트 프로그램을 종료한다.
1.2 Backgrounds
소켓은 다양한 하부 프로토콜 패밀리 및 패밀리내의 각종 프로토콜 스택을 위해 여러 가지 다양한 형태로 존재한다. 첫 번째 스트림(stream) 소켓으로 TCP/IP 이며 다른 하나는 데이터그램(datagram) 소켓인 UDP이다. 스트림 소켓은 TCP를 종단간(end-to-end) 프로토콜로 사용하며, 신뢰성 있는 바이트-스트림 서비스를 제공한다. 데이터그램 소켓은 UDP를 사용하는데, 애플리케이션들이 대략 최대 길이 65,600 바이트의 개별 메시지를 보내는데 사용하는 최선형(best-effor) 데이터그램 서비스를 제공한다.
참고 자료
리눅스 시스템 프로그래밍/김성우 이중화 이종민 저/두양사출판/2006.8.25발행
네트워크 주소변환/http://mintnlatte.tistory.com/270
네트워크 바이트순서/http://mintnlatte.tistory.com/52
UNIX 고급 프로그래밍 제 2판/리처트 스티븐스, 스티븐 레이고 저/대웅출판