项目:FTP服务器

本文介绍了如何设计和实现一个FTP服务器,包括服务器的基本流程、数据结构、子线程任务和客户端交互。服务器支持ls, cd, puts, gets, remove, pwd等命令。还涉及了线程池和进程池的讨论,以及日志记录、断点续传和多点下载的功能规划。" 109289011,9122618,微信网页版分享与授权实现详解,"['微信开发', 'H5分享', '微信授权', '移动开发', '前端开发']
摘要由CSDN通过智能技术生成

ftp服务器:

问题1:能不能上传目录。不能。

问题2:每次只能有一个客户端连接。

需要的数据结构:

一个共同的路径信息。保存现在用户所在的当前路径。

pthread_cond_t cond   num个

pthread_mutex_t mutex num个

父线程流程:

0.传入参数args.conf 拿到IP,端口,需要建立的线程数,最大的请求数

1.创建目录ftpserver,可供遍历,上传下载使用。

2.socket();

3.bind();

4.listen() 监听客户端的请求。

5.初始化结构体

5.产生num个子线程。每个子线程有自己不同的事。所以用num个条件变量。

6.accept(),收到请求后,产生一个new_fd。主线程与客户端进行通话,看客户端需要什么操作。根据不同的操作,signal通知不同的子线程进行处理。

子线程:

1.wait()自己的条件变量;

2.拿到自己的条件变量之后,做自己的事。

2.接收客户端发来的指令:

    若为:cd 目录。首先查找有没有这个目录,没有则返回错误。有,则在ftpserver目录下进入到对应目录下,然后将ll的结果保存到文件ll.txt中,将ll.txt发送给客户端。

    若为:ls 命令。

1.cd  进入对应目录 ok  

2.ls 列出相应目录文件 。ls可以显示当前的。 ok 

3.puts 将本地文件上传至服务器。不要下目录,只下文件就行了。o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值