Linux FTP客户端 - 错误425

时间:2012-06-01 09:41:26

标签: c ftp-client

我正在使用套接字在Linux c中创建一个FTP客户端,当我尝试发送,接收或列出时,我陷入困境。 登录服务器,我可以设置TYPE目录,但每次发送STOR命令我都会

  

“425无法打开数据连接”

我还尝试使用PASV设置端口,但我得到了同样的错误。

我正在使用此代码发送每个命令:

printf("send command\n");
bzero(buffer,256);
sprintf(buffer,"STOR FTP_ENVIA.txt\r\n");

n = write(sockfd,buffer,strlen(buffer));
if (n < 0){ 
    error("ERROR writing to socket");
}
bzero(buffer,256);
n = read(sockfd,buffer,255);
if (n < 0){
    error("ERROR reading from socket");
}else{
    i=0;
    while(i<4){                 //gets response code (example "220 ")
        ftp_code[i]=buffer[i];
        i++;
    }
    if(' ' == ftp_code[3]){
        fprintf(ficheiro20, "Space found :%s\n",ftp_code);
        fprintf(ficheiro20, "OK SEND:%s\n",buffer);
        printf("SEND\n");
    }else{
        // because the responde code has '-'
        ftp_code[3]=' ';        
        ftp_code_aux[0]='l';        
        ftp_code_aux[1]='i';
        ftp_code_aux[2]='x';
        ftp_code_aux[3]='o';
        while(0 != strcmp(ftp_code,ftp_code_aux)){
            bzero(buffer,256);
            n = read(sockfd,buffer,255);
            if (n < 0){
                error("ERROR reading from socket");
            }else{
                // descodifica o código enviado pelo servidor ftp
                i=0;
                while(i<4){
                    ftp_code_aux[i]=buffer[i];
                    i++;
                }
                fprintf(ficheiro20, "respostas:%s\n",buffer);
            }
        }
    }
} 

0 个答案:

没有答案
相关问题