资源简介
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个文件信息
- 上一篇:51单片机频率计设计
- 下一篇:Servlet API chm文档
相关资源
- linux系统下的内存测试工具
- GNU/Linux系统开发者需要从桌面突破
- the_definitive_guide_to_linux_network_programm
- linux-shell脚本命令:grep命令简介
- Learning Linux Binary Analysis
- 蓝牙源代码应用于LINUX
- FTP课程设计(服务端+客户端)
- uboot到linux logo显示不间断 补丁
- UNIX/LINUX编程实践教程的源码
- Linux任务管理器
- linux应用层的华容道游戏源代码
- python实现的ftp自动上传、下载脚本
- 用Socket编程实现FTP
- ubuntu9.10 可加载内核模块和字符设备驱
- MP3文件ID3v2ID3v2APEv2标签读取
- 操作系统实验——虚存管理实验
- linux下的发包工具sendip
- 尚观培训linux许巍关于c 的笔记和讲义
- 尚观培训linux董亮老师关于数据结构的
- linux 线程池源码 c 版
- tftp文件传输工具
- linux C 电梯程序练习
- linux下用多进程同步方法解决生产者
- Linux 操作系统实验(全)
- Linux From Scratch 中文手册
- linux 网络实验 ftp程序
- 用Socket写的简易FTP服务器和客户端
- Linux命令大全离线版&在线版
- 基于C 的简易FTP客户端(带源码)
- 操作系统共享内存实验
评论
共有 条评论