|
按照rfc的ftp文档,用socket编了个ftp客户端的程序,但是文件下载时总是不对,希望各位多指教或给段源码。
....
str = "PASV\r\n";
sendcmd(sock_ftp, str);
//数据连接
sock_data = socket(AF_INET, SOCK_STREAM, 0);
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(dataport);
server_addr.sin_addr.s_addr = inet_addr(SERVER_ADDR);
bzero(&(server_addr.sin_zero),;
result = connect(sock_data, (struct sockaddr*)&server_addr, sizeof(struct sockaddr)); //连接没有问题
str = "RETR ee.doc\r\n";
sendcmd(sock_ftp, str);
result = recv(sock_data, buf, MAX_DATASIZE, 0);
printf("%s\n",buf);
//返回值是150,但是下面我就不知道怎么做了,改了几次都不行
//各位帮忙看看,是不是我上面的步骤错了,给个流程提示
while(result > 0);
{
fd=open("/home/mars/ee.doc", O_WRONLY | O_CREAT);
write(fd, buf ,sizeof(buf));
result = recv(sock_data, buf, MAX_DATASIZE, 0);
printf("%s\n",buf);
} |
|