[질문] FTP client 를 리눅스 환경 c++에서 설계중입니다.
글쓴이: hero0709 / 작성시간: 화, 2009/06/02 - 10:23오후
FTP client 를 socket 이용한 리눅스 환경 c++에서 설계중입니다.
FTP SERVER 로는 windows 에서 알FTP 로 테스트 하고 있습니다.
ascii 전송은 문제가 없지만, binary 전송시 이상하게 문제가 발생합니다.
우선 binary 전송을 서버에 요청하는 command 가
TYPE I << 요기 맞나요? RFC 959를 참조하니 맞는것은 같지만.. 정확하게 잘모르겟습니다.
우선 위와 같이 TYPE I 요청후 파일을 전송받아 저장 하면 이상하게도
처음 파일의 4/1 정도의 파일 크기만 수신이 됩니다. 대상 파일이 400MB 이든 4MB 이든 말이죠..
아래는 파일을 저장하는 부분중 일부분의 코드 입니다. 잘못된 점을 지적좀 해주세요.
기본적으로 TCP 소켓을 이용하여 접속을 함.
.
.
.
.
CMD PORT로 자료 요청하여 DATA PORT 로 자료 수신 시작.
ofstream outfile( "1.jpg", ios::binary );
while( read(connfd,receive,sizeof(receive) ){
outfile << receive;
memset(&receive, 0 , sizeof(receive));
}
* connfd : data socket , receive : 수신 버퍼
Forums:
명시적으로 flush를
명시적으로 flush를 해보시는게 좋지 않을까요.
ascii의 경우엔 new-line character 덕분에 flush가 일어나서 처리가 되는 걸 수도 있지 싶은데요.
=======================================================================
오늘 우리는 동지를 땅에 묻었습니다. 그러나 땅은 이제 우리들의 것입니다.
아직도 우리의 적은 강합니다. 그러나 우리는 그들보다 많습니다.
항상 많을 것입니다.
오늘 우리는 동지를 땅에 묻었습니다. 그러나 땅은 이제 우리들의 것입니다.
아직도 우리의 적은 강합니다. 그러나 우리는 그들보다 많습니다.
항상 많을 것입니다.
댓글 달기