• 大小: 384KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: 其他
  • 标签: ftp  linux  

资源简介

linux下的简单文件服务器和客户端程序

资源截图

代码片段和文件信息

#include 
#include 
#include “unp.h“
void ftp_cli(FILE *fp int sockfd);
int main(int argc char **argv)
{
int sockfd;
struct sockaddr_in servaddr;
if (argc != 2)  err_quit(“usage: tcpcli “);
sockfd = Socket(AF_INET SOCK_STREAM 0);
bzero(&servaddr sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(21000);
Inet_pton(AF_INET argv[1] &servaddr.sin_addr);
Connect(sockfd (SA *) &servaddr sizeof(servaddr));
ftp_cli(stdin sockfd); /* do it all */
exit(0);
}


void ftp_cli(FILE *fp int sockfd)
{
char sendline[MAXLINE] recvline[MAXLINE];
char cmd [MAXLINE];

char wdpath[200];
if(getcwd(wdpath200)==NULL)return ;
strcat(wdpath“/user“);

for ( ; ; )
{
    fprintf(stderr “myftpclient-->“);
        if (Fgets(sendline MAXLINE fp) == NULL) return;
else fputs(sendlinestdout);
strcpy(cmdsendline);
//int i;
//for(i=0;i //fprintf(stderr“%d\n“(int)(sendline[i]));
char * pcmd=strtok(cmd“ \n“);
if(strcmp(pcmd“dir“)==0||strcmp(pcmd“ls“)==0)
{
            Writen(sockfd sendline strlen(sendline));
    if (Readline(sockfd recvline MAXLINE) == 0)
err_quit(“str_cli: server terminated prematurely“);
            int lines=atoi(recvline);
            int i;
for(i=0;i {
    Readline(sockfd recvline MAXLINE);
    fprintf(stderrrecvline);
}
        }
        else if(strcmp(pcmd“get“)==0)
{
            Writen(sockfd sendline strlen(sendline));
    if (Readline(sockfd recvline MAXLINE) == 0)
err_quit(“str_cli: server terminated prematurely“);
            int bytes=atoi(recvline);
            fprintf(stderr “file length = %d.\n“bytes);
            int left=bytes;
            FILE *fp=0;
            if(left>0)
            {
                char filename[100];
                strcpy(filenamewdpath);
                strcat(filename“/“);
                strcat(filename strtok(NULL“ \n“));
                if((fp=fopen(filename“wb“))==NULL)
                {
                    fprintf(stderr“failed open file %s“filename);
                    return;
                }
                fprintf(stderr “file create: %s.\n“filename);
            }

            while(left>MAXLINE)
            {
                Readn(sockfd recvline MAXLINE);
                left-=MAXLINE;
                fwrite(recvlineMAXLINE1fp);
            }
            if(left<=MAXLINE)
            {
                Readn(sockfd recvline left);
    //fprintf(stderrrecvline);
    fwrite(recvlineleft1fp);
            }
            fprintf(stderr “file writen done.\n“);
            fclose(fp);
        }
        else if(strcmp(pcmd“quit“)==0)
{
    fprintf(stderr “See you!.\n“);
    return;
}
else
fprintf(stderr “usage:cmd [args].\ncmd=\tdir\tls\tget\tquit\n“);

}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-05-07 21:23  myftp\
     文件        2870  2011-04-20 20:33  myftp\client.c
     目录           0  2016-05-07 20:43  myftp\ftpc\
     目录           0  2016-05-05 16:14  myftp\ftpc\bin\
     目录           0  2016-05-05 16:14  myftp\ftpc\bin\Debug\
     文件       54113  2011-04-13 23:58  myftp\ftpc\bin\Debug\ftpc
     文件        5228  2016-05-07 20:42  myftp\ftpc\client.c
     文件        4566  2016-05-07 20:06  myftp\ftpc\client.c~
     文件       13996  2016-05-07 20:43  myftp\ftpc\client.o
     文件        9119  2009-10-21 15:25  myftp\ftpc\config.h
     文件       58258  2016-05-07 20:43  myftp\ftpc\ftpc
     文件        1201  2011-04-14 22:37  myftp\ftpc\ftpc.cbp
     文件         241  2011-04-15 11:16  myftp\ftpc\ftpc.layout
     文件      392824  2009-10-21 15:28  myftp\ftpc\libunp.a
     文件        1251  2011-04-13 23:22  myftp\ftpc\main.c~
     文件         293  2011-04-14 16:45  myftp\ftpc\makefile
     文件         289  2011-04-13 22:45  myftp\ftpc\makefile~
     目录           0  2016-05-05 16:14  myftp\ftpc\obj\
     目录           0  2016-05-05 16:14  myftp\ftpc\obj\Debug\
     文件        6036  2011-04-13 23:58  myftp\ftpc\obj\Debug\main.o
     文件       16734  2009-10-28 17:27  myftp\ftpc\unp.h
     目录           0  2016-05-07 20:08  myftp\ftpc\user\
     文件         180  2016-05-04 09:51  myftp\ftpc\user\code.c
     文件          38  2016-05-07 20:02  myftp\ftpc\user\ex.c
     文件       53248  2016-05-07 15:26  myftp\ftpc\user\ftps
     文件         200  2016-05-07 19:23  myftp\ftpc\user\id1.c
     文件        9212  2016-05-07 15:25  myftp\ftpc\user\main.o
     文件         293  2016-05-07 15:26  myftp\ftpc\user\makefile
     目录           0  2016-05-07 20:43  myftp\ftps\
     目录           0  2016-05-05 16:14  myftp\ftps\bin\
     目录           0  2016-05-05 16:14  myftp\ftps\bin\Debug\
............此处省略26个文件信息

评论

共有 条评论