int readfile(void) { int fd, total = 0; int ctrlSock; int dataSock; char buf [512]; int nBytes;
fd=open("File.rar",2,0644); if (ERROR==fd) { creat("File.rar",2); fd=open("File.rar",2,0644);
if(fd == ERROR) { printf("Can not open the destination file\r\n"); return ERROR; } }
if (ftpXfer ("host","target100","target" , "", "RETR %s", "E:/test/", "DoubleCom.rar", &ctrlSock, &dataSock) == ERROR) { printf("Can not connect to host r\n"); return (ERROR); }
while ((nBytes = read (dataSock, buf, 512)) > 0) { total += nBytes; write(fd, buf, nBytes); } close(fd); close (dataSock); close (ctrlSock); printf("\nIt's OK.\n");
} 但我现在希望能把这个文件File.rar再传回到windows主机上E:/test/ ,并且改名叫dc.rar,我对原先的程序修改如下: #include "vxWorks.h" #include "ftpLib.h" #include "ioLib.h" #include "stdioLib.h"
int writefile(void) { int fd, total = 0; int ctrlSock; int dataSock; char buf [512]; int nBytes;
fd=open("File.rar",2,0644); if (ERROR==fd) { creat("File.rar",2); fd=open("File.rar",2,0644);
if(fd == ERROR) { printf("Can not open the destination file\r\n"); return ERROR; } }
if (ftpXfer ("host","target100","target" , "", "RETR %s", "E:/test/", "dc.rar", &ctrlSock, &dataSock) == ERROR) { printf("Can not connect to host \n"); return (ERROR); }
while ((nBytes = read (fd, buf, 512)) > 0) { total += nBytes; write(dataSock, buf, nBytes); } close(fd); close (dataSock); close (ctrlSock); printf("\nthe total bytes are %d",total); printf("\nIt's OK.\n");
} 但是没有成功,首先:1。在我没有在E:/test/下建立dc.rar时,显示文件不存在,传输失败。 2。我就在E:/test/下建立了一个dc.rar,程序可以执行,total中统计的总字节数和文件的大小是一样的,但E:/test/下建立dc.rar并没有变化(还是建立时那么大) 我现在想问,用ftp server传输文件时候,需要先建一个文件再向里面传数据吗,我想应该是不用的,所以我上面的做法应该不对,但我不知怎样实现把目标机vxworks下的文件上载到主机的windows下 请大家指点我一下,我先前对网络不熟悉,所以问题比较多,大家帮忙啊
可能我的以上想法本身就是错误的,大家给指个道 ,谢谢。[em12][em12][em12][em09][em09][em11][em12]