❶ 你好,这个你解决了吗C语言如何用FtpPutFile()函数上传文件到Ftp服务器!下载用FtpGetFile()可以!
先后使用InternetOpen和InternetConnect打开连接。使用CreateFile函数打开本地文件。使用FtpOpenFile函数打开远程文件。分别使用InternetReadFile和ReadFile函数读取
FTP
或本地文件。分别使用InternetWriteFile和WriteFile函数写入
FTP
或本地文件。使用CloseHandle函数关闭本地文件句柄。使用InternetCloseHandle函数关闭
FTP
文件句柄。
❷ 在linux中如何用C语言实现FTP上传
你可以使用库函数啊, 比如libftp或者libcurl(记得支持的)。 具体的用法你可以查阅相关的说明文档。比你自己写一个客户端简单多了。
❸ c#中上传文件至FTP指定目录方法
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
structPCB{
charNAME[10];/*进程名*/
intROUND;/*进程轮转时间片*/
intREACHTIME;/*进程到达时间*/
intCPUTIME;/*进程占用CPU时间*/
intCOUNT;/*计数器*/
intNEEDTIME;/*进程完成还要的CPU时间*/
charSTATE;/*进程的状态*/
structPCB*NEXT;/*链指针*/
};
structLINK{/*PCB的链结构*/
structPCB*RUN;/*当前运行进程指针*/
structPCB*READY;/*就绪队列头指针*/
structPCB*TAIL;/*就绪队列尾指针*/
structPCB*FINISH;/*完成队列头指针*/
};
voidINIT(LINK*);/*对PCB的链结构初始化*/
voidINSERT(LINK*);/*将执行了一个单位时间片数且还未完成的进程的PCB插到就绪队列的队尾*/
voidFIRSTIN(LINK*);/*将就绪队列中的第一个进程投入运行*/
voidPRINT(LINK*);/*打印每执行一个时间片后的所有进程的状态*/
voidPR(PCB*);/*打印一个进程的状态*/
intCREATE(LINK*,int);/*创建新的进程*/
voidROUNDSCH(LINK*);/*按时间片轮转法调度进程*/
voidmain(){
LINKpcbs;
inti;
INIT(&pcbs);
i=0;
printf("创建5个进程 ");
while(i<5){
if(CREATE(&pcbs,i+1)==1){
printf("进程已创建 ");
i++;
}
else
printf("进程创建失败 ");
}
FIRSTIN(&pcbs);
ROUNDSCH(&pcbs);
}
voidROUNDSCH(LINK*p){
PCB*pcb;
while(p->RUN!=NULL){
pcb=(PCB*)malloc(sizeof(PCB));
strcpy(pcb->NAME,p->RUN->NAME);
pcb->ROUND=p->RUN->ROUND;
pcb->REACHTIME=p->RUN->REACHTIME;
pcb->CPUTIME=p->RUN->CPUTIME;
pcb->COUNT=p->RUN->COUNT;
pcb->NEEDTIME=p->RUN->NEEDTIME;
pcb->STATE=p->RUN->STATE;
pcb->NEXT=p->RUN->NEXT;
pcb->CPUTIME++;
pcb->NEEDTIME--;
pcb->COUNT++;
if(pcb->NEEDTIME==0){
pcb->NEXT=p->FINISH->NEXT;
p->FINISH->NEXT=pcb;
pcb->STATE='F';
p->RUN=NULL;
if(p->READY!=p->TAIL)
FIRSTIN(p);
}
else{
p->RUN=pcb;
if(pcb->COUNT==pcb->ROUND){
pcb->COUNT=0;
if(p->READY!=p->TAIL){
pcb->STATE='W';
INSERT(p);
FIRSTIN(p);
}
}
}
PRINT(p);
}
}
voidINIT(LINK*p){
p->RUN=NULL;
p->TAIL=p->READY=(PCB*)malloc(sizeof(PCB));
p->READY->NEXT=NULL;
p->FINISH=(PCB*)malloc(sizeof(PCB));
p->FINISH->NEXT=NULL;
}
intCREATE(LINK*p,intn){
PCB*pcb,*q;
pcb=(PCB*)malloc(sizeof(PCB));
flushall();
printf("请输入第%d个进程的名称: ",n);
gets(pcb->NAME);
printf("请输入第%d个进程的轮转时间片数: ",n);
scanf("%d",&(pcb->ROUND));
printf("请输入第%d个进程的到达时间: ",n);
scanf("%d",&(pcb->REACHTIME));
pcb->CPUTIME=0;
pcb->COUNT=0;
printf("请输入第%d个进程需运行的时间片数: ",n);
scanf("%d",&(pcb->NEEDTIME));
pcb->STATE='W';
pcb->NEXT=NULL;
if(strcmp(pcb->NAME,"")==0||pcb->ROUND<=0||pcb->NEEDTIME<=0)/*输入错误*/
return0;
q=p->READY;
while(q->NEXT!=NULL&&q->NEXT->REACHTIME<=pcb->REACHTIME)
q=q->NEXT;
pcb->NEXT=q->NEXT;
q->NEXT=pcb;
if(pcb->NEXT==NULL)
p->TAIL=pcb;
return1;
}
voidFIRSTIN(LINK*p){
PCB*q;
q=p->READY->NEXT;
p->READY->NEXT=q->NEXT;
q->NEXT=NULL;
if(p->READY->NEXT==NULL)
p->TAIL=p->READY;
q->STATE='R';
p->RUN=q;
}
voidINSERT(LINK*p){
PCB*pcb;
pcb=(PCB*)malloc(sizeof(PCB));
strcpy(pcb->NAME,p->RUN->NAME);
pcb->ROUND=p->RUN->ROUND;
pcb->REACHTIME=p->RUN->REACHTIME;
pcb->CPUTIME=p->RUN->CPUTIME;
pcb->COUNT=p->RUN->COUNT;
pcb->NEEDTIME=p->RUN->NEEDTIME;
pcb->STATE=p->RUN->STATE;
pcb->NEXT=p->RUN->NEXT;
p->TAIL->NEXT=pcb;
p->TAIL=pcb;
p->RUN=NULL;
pcb->STATE='W';
}
voidPRINT(LINK*p){
PCB*pcb;
printf("执行一个时间片后的所有进程的状态: ");
if(p->RUN!=NULL)
PR(p->RUN);
if(p->READY!=p->TAIL){
pcb=p->READY->NEXT;
while(pcb!=NULL){
PR(pcb);
pcb=pcb->NEXT;
}
}
pcb=p->FINISH->NEXT;
while(pcb!=NULL){
PR(pcb);
pcb=pcb->NEXT;
}
}
voidPR(PCB*p){
printf("进程名:%s ",p->NAME);
printf("进程轮转时间片:%d ",p->ROUND);
printf("进程到达时间:%d ",p->REACHTIME);
printf("进程占用CPU时间:%d ",p->CPUTIME);
printf("计数器:%d ",p->COUNT);
printf("进程完成还要的CPU时间:%d ",p->NEEDTIME);
printf("进程的状态:%c ",p->STATE);
}
❹ C语言如何用FtpPutFile()函数上传文件到Ftp服务器!下载用FtpGetFile()可以!
- 先后使用InternetOpen和InternetConnect打开连接。
- 使用CreateFile函数打开本地文件。
- 使用FtpOpenFile函数打开远程文件。
- 分别使用InternetReadFile和ReadFile函数读取 FTP 或本地文件。
- 分别使用InternetWriteFile和WriteFile函数写入 FTP 或本地文件。
- 使用CloseHandle函数关闭本地文件句柄。
- 使用InternetCloseHandle函数关闭 FTP 文件句柄。
❺ 想用C++实现FTP功能:选定自己电脑上的txt文件,发送到用网线连接的另一台电脑上。很急,求大神支招
可以参考下面代码
CInternetSessionsession("MyFtpsession");
CFtpConnection*pconn;
pconn=NULL;
inttrycount=0;
CString搭搭UpFile;
UpFile="c:\a.rar";
CStringFtpIP,FtpUserName,FtpPassword,FtpDir;
FtpIP="192.168.1.100";
FtpUserName="userup";
FtpPassword="uppass";
FtpDir="/";
unsignedshortport;
port=21;
reconn:
try
{
pconn=session.GetFtpConnection(FtpIP,
FtpUserName,FtpPassword,port,FALSE);//INTERNET_INVALID_PORT_NUMBER,FALSE);
}
catch(CInternetException*pException)
{
trycount++;
if(trycount==2)
{
pException->ReportError();
returnFALSE;
}
else
{
//srand((unsigned)time(0));//设种子
//Delay((long)rand()*10000);
goto知轿拿reconn;
}
}
if(!pconn->SetCurrentDirectory(FtpDir))
{
TRACE("SetDirError");
returnFALSE;
}
if(!(pconn->PutFile(UpFile,FTP_TRANSFER_TYPE_BINARY,1)))
{
return帆瞎FALSE;
TRACE("PutError");
}
session.Close();
deletepconn;
deletesession;
pconn=NULL;