FTP服务端 客户端项目

本文参考  kpler 及引用

里面可能有些错误,欢迎各位指出,本人小白,正学习阶段

server端

 功能:实现在局域网里收发文件
ls:查看当前文件
lls:查看服务器文件
cd+空格+文件名(…),服务器进入文件夹或返回上一级
lcd+空格+文件名(…),本地进入文件夹或返回上一级
get+空格+文件名:得到服务器文件
put+空格+文件名: 发送给服务器

   存在问题:put指令 没有更详细的判断,如果客户端不存在文件,服务端也创建文件                                        啊???我就不改了,差不多跟get指令相似的判断

#include<stdio.h>
#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>
#include <arpa/inet.h>
#include<netinet/in.h>
#include<stdlib.h>
#include <unistd.h>
#include<string.h>
#include <sys/stat.h>
#include <fcntl.h>
 
int change(char cmd[128])
{
	if(!strcmp("ls",cmd))		{   return 1;}		
	else if(!strcmp("ps",cmd))	{   return 2;}
	else if(strstr(cmd,"cd")!=NULL)	{   return 3;}
	else if(!strcmp("g",cmd))	{   return 4;}				   
	else if(strstr(cmd,"get")!=NULL){   return 5;} 
	else if(strstr(cmd,"put")!=NULL){   return 6;}
			
}
char *getbehind(char cmd[128])
{	
	char *p;
	p = (char *)malloc(128);
	p  = strtok(cmd," ");
	p = strtok(NULL," ");
 
	return p;
 
}
 
void getmessage(char cmd[128],int cfd)
{
 
        char readbuf[8000];
        char *p=getbehind(cmd);     //先 精简指令
        read(cfd,readbuf,8000);           //再将客户端数据 读到buf
        int fd = open(p,O_RDWR|O_CREAT,0666);    //打开/创建此文件
 
        write(fd,readbuf,strlen(readbuf));      //将客户端数据传给fd文件
        printf("receive successfully\n");        
        close(fd);                               //put成功
        memset(readbuf,0,8000);
 
 
 
 
}
 
 
 
 
 
 
 
 
 
 
void choosecmd(char cmd[128],int c_fd)
{
	int sfd;
	FILE *fdb;
	char *readbuf =
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追着太阳跑1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值