Ftp client 프로그래밍에서 put 기능 구현 문의
글쓴이: studyhard / 작성시간: 수, 2003/10/01 - 10:30오전
간단히 파일 복사할때는
1. 먼저 특정 디렉터리의 파일을 읽기 전용모드로 연다.(open) 2. 다음 특정 디렉터리에 쓰기전용모드로 파일을 생성한다.(open) 3. 1에서 열어둔 파일의 디스크립터를 이용하여 일정 바이트를 버퍼에 읽는다(read) 4. 2에서 열어돈 파일의 디스크립터를 이용하여 3에서 읽은 바이트 수 만큼 버퍼의 내용을 파일에 기록한다.(write) 5. 3,4를 반복수행한다. (3에서 읽을때 eof를 검사하여 종결시점을 정한다) 6. 열려진 모든 파일을 닫는다.(close)
이런 과정으로 프로그램을 만들자나요.
그런데 put 기능이라하면 제 서버에서 상대방 서버로
1. 내 서버 : 일정 바이트를 읽어서 버퍼에 담는다. 2. 내 서버-> 상대서버로 패킷을 전송한다. 3. 상대서버 : 일정 바이트를 받은다음 그걸 버퍼에 담아서 파일에 쓴다.
이런 과정으로 생각하면 될거 같은데요.
이 과정중에 1.2.3번을 코드로 표현한다면 어떻게 할 수 있을까요.
제가 한 생각(put 기능)과 다른 분이 있으시면 생각하고 계시는 코드좀 보여주세요.
도움좀 부탁드려요. 미리 감사드립니다..
Forums:
이어받기를 고려해 보시는게 좋을듯합니다.reget이 명령이지요.
이어받기를 고려해 보시는게 좋을듯합니다.
reget
이 명령이지요. put을 구현하려고 하시지만, get도 필요하겠지요.
FlashGet에서 파일전송방법등도 고려해 보심이 좋을듯합니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
먼저 결정을 해야 할 것은 데이타를 전달할 연결 통로를 어떻게 만들 것이
먼저 결정을 해야 할 것은 데이타를 전달할 연결 통로를 어떻게 만들 것이냐입니다. 먼저 PASS, PORT 이 두가지 중 하나를 선택하시구요.
만약 PORT 를 사용하시겠다면, 클라이언트쪽에서 소켓 만들고 bind, listen 한다음 그 소켓의 포트를 서버에 PORT 명령으로 알려준 후 accept 합니다. (여기서 임의의 포트가 될지 고정적인 포트가 될지 어떤 포트의 범위가 될지를 결정) 그다음 서버쪽에서 클라이언트가 연 포트로 접속을 시도할 것입니다. 접속 확인하면 로컬의 파일을 오픈하고 (미리 하든) 그 소켓으로 파일의 내용을 쭈욱 보냅니다. 다 보냈다면 파일과 소켓을 닫습니다. 전송 완료...
만약 PASS 를 사용하시겠다면, PASS 명령을 서버에 날리면 서버측에서 소켓을 만들고 listen 상태로 돌입하고 그 포트를 알려줍니다. 그 다음은 위와 마찬가지입니다. (구현은 이쪽이 쉽죠. 그리고 방화벽 문제도 비켜 갈 수 있고요)
ftp 는 파일의 끝을 데이터용 연결이 닫히는 것으로 인식합니다. 자세한 것은 RFC 를 참고하셔야 합니다.
그리고, 코드는 아마 직접적으로 얻기 힘들지 않을까요? 다들 바쁘신 분들인데 툭하고 내놓으실리는 없구요. ftp 클라이언트의 소스는 많이 있으니까 직접 찾으시는게 좋겠습니다.
그럼, 이만...
네.. 바쁘신 와중에도 답변달아주셔서 감사합니다...계속 노트에
네.. 바쁘신 와중에도 답변달아주셔서 감사합니다...
계속 노트에 적어서 만들어 보고 있는데.. 잘안되네요 히히..
제가 아직 많이 부족해서.. 답변달아주신 분들 모두 좋은하루 되시구요. bbs읽는 모든 분들도 좋은하루되세요^^
우선 get기능은 구현다되어있구요~put기능도 해결된거 같아요..
우선 get기능은 구현다되어있구요~
put기능도 해결된거 같아요..
읽어서 보내구 -> 받아서 쓰고
이런식으로 해서 노트에 그냥짜봤는데 되네요.
암튼 고맙습니다~
댓글 달기