请教一个FTP问题

cat_cdf 2003-10-18 08:15:38
我写了一个FTP客户端程序想下载文件,可发完 retr 命令后什么也收不到了,我的serv-u 上明明写着发送成功
“[3] Sat 18Oct03 19:06:34 - (000009) Sent file f:\mydoc\down\tt.txt successfully (1815 Kb/sec - 85499 bytes)
[5] Sat 18Oct03 19:06:34 - (000010) Closing connection


一下是我的程序请大家帮帮忙.
//////////////////////////////////////////////
#include <winsock2.h>
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>


main()
{

WORD wVersionRequested = MAKEWORD(2, 2);
WSADATA wsaData;
if (WSAStartup(wVersionRequested, &wsaData)) {
printf("WSAStartup failed %s\n", WSAGetLastError());
return -1;
}

SOCKET s=0;
s=socket(AF_INET,SOCK_STREAM,0);

struct sockaddr_in from;
unsigned long ipValue=0;
int Port = 21;
char ipStr[255]={0};

//ipValue=inet_addr((char FAR*)ipStr);
ipValue=inet_addr("127.0.0.1");
from.sin_family=AF_INET;
from.sin_addr.S_un.S_addr=ipValue;
from.sin_port=htons(Port);
connect(s,(struct sockaddr FAR *)&from,sizeof(from));

char buffer[255]={0};
strcpy(buffer,"user test\r\n");
send(s,buffer,strlen(buffer),0);
strcpy(buffer,"pass test\r\n");
send(s,buffer,strlen(buffer),0);

strcpy(buffer,"size tt.txt\r\n");
send(s,buffer,strlen(buffer),0);
recv(s,buffer,255,0);

strcpy(buffer,"type i\r\n");
send(s,buffer,strlen(buffer),0);
recv(s,buffer,255,0);

strcpy(buffer,"rest 0\r\n");
send(s,buffer,strlen(buffer),0);
recv(s,buffer,255,0);

strcpy(buffer,"retr tt.txt\r\n");
send(s,buffer,strlen(buffer),0);

recv(s,buffer,255,0); 一到这里就停住了????

closesocket(s);
WSACleanup();

}
...全文
50 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eearbird 2003-10-18
  • 打赏
  • 举报
回复
Ftp协议规定,
FTP信息交互的时候有两个途径:
一个是命令通道(即你上面用的SOCKET)
另一个是数据通道,用来传输数据:传输数据有两种模式:默认是主动方式,另一种是被动方式;
因此你需要使用Port(主动)或者pasv(被动)命令来建立数据通道,建议一般使用pasv模式,这样才能保证,你的客户端在内网的时候,也能于外网的服务器建立数据通道。
阿甘 2003-10-18
  • 打赏
  • 举报
回复
用port或者pasv命令来指定端口,详细用法你自己查一下吧
cat_cdf 2003-10-18
  • 打赏
  • 举报
回复
怎样才能知道那个端口是什么呢?
应该怎样写呢?
阿甘 2003-10-18
  • 打赏
  • 举报
回复
注意,ftp协议是另外用一个端口来传送数据的,而不是21端口

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧