资源简介
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文档
相关资源
- RTL8111/8168B linux网卡驱动
- 东北大学Linux操作系统大实验
- The AWK Programming Language 中文版
- 在linux中使用tcp实现一个简单文件服务
- linux 运维自动监测脚本CPU,内存,磁
- linuxRTP打包发送
- 操作系统实验 华工 Linux
- AODV源代码265362
- 福建农林大学计科linux复习
- cuda_8.0.61_375.26_linux.run
- 基于linux系统的ftp服务器
- cadence安装方法 linux
- FTP协议父子连接
- Linux下安装Intel无线网卡
- openssh-8.2.tar.gz
- Linux常用命令全集260354
- qt ftp上传
- smartctl源码
- Linux命令大全完整版.pdf
- Linux ATM取款机简单实现附详细说明-
- 2018年最新全套linux视频教程源码笔记
- 华中科技大学计算机学院操作系统一
- linux使用规范
- libsigar-amd64-linux.so以及libsigar-x86-linu
- linux哲学家就餐3种方法代码实现
- centos 7的telnet安装包.zip
- Linux版本浙江闪讯拨号连接
- Linux 下多线程数字排序
- pcap 在linux简单实现网络的抓包程序
- 在Linux环境下模拟实现命令解释器--操
评论
共有 条评论