FTP项目

简介:远程服务器

cd…可以进入到服务器的上层目录
lcd是回到自己的上层目录

功能

1.支持多个客户端的介入
2.支持文件的获取,支持本地路径和远程路径的查看。
3.还可以调用put指令把当前文件夹上的代码传到服务器

研发思路

客户端功能:
1.获取服务器的文件: get xxx
2.展示服务器有哪些文件 ls
3.进入服务器某文件夹 cd
4.上传文件到服务器 put xxx
1.lls 查看客户端本地文件
2.lcd进入客户端xx文件夹
服务端:就是解析这些指令然后返回

注意:用recv不用read是因为read读完就把数据拿走了,而recv不会

客户端简单理解就是和之前的socket编程类似
socket bind listen
while(1) 不断accept
调用子进程,读取套接字上的readbuf(操控指令),根据指令来看客户端发来的是什么指令(cd ls pwd get ?)
最终都通过send或write送回到客户端


服务器理解:
system启动父进程
socket bind listen accept
fork() 子进程里1.接收指令 2.把指令写入到共享内存,把子进程的pid号也写入共享内存
父服务器是读共享内存 读到的返回给客户端

记住:一个子进程负责一条连接通道,当新客户端介入时创建进程,其他情况不要创建,否则会不好管控

serve.c:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
put部分结合clien.c一起看:
在这里插入图片描述
在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/dd875f8bd2174229af80bde2bfd19704.png![在这里插入图片描述](https://img-blog.csdnimg.cn/e9cfd76676f74edb8dd20c1e82bb29e3.png在这里插入图片描述在这里插入图片描述


clinet.c

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后客户端就读取服务端发回来的消息(handler_server_message函数)。
(服务器没发时该函数会阻塞,发来了就读)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
**加粗样式
**

需要学习的一些函数:
strtok 字符分割函数
access 判断文件是否存在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值