一个简单的文件共享工程 -- 功能概述

本文详细介绍了服务器如何管理目录,并与远程客户端通过简单命令(如ls, cd, mkdir等)进行交互,同时讨论了大数据量文件上传/下载对客户端响应的影响及交互协议细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务器管理一个目录,远程客户端可以对这个目录进行几个简单的命令(ls,cd,mkdir,touch,rm,download,upload),客户端不可以操作共享目录以外的东西。

服务器用的是多路复用实现的,没有用多线程,多进程;所以,如果一个客户端在上传或下载大数据量的文件时,就不能对别的客户端及时响应。

交互协议如下:

ls:
    client>:
            >> ls >> directory
    server>:
            while true:
                >> last_package(unsigned char) >> some_message(string)
                if last_package is 1:
                    break

cd:
    client>:
            >> cd >> directory
    server>:
            if success >> (nothing)
            else       >> some_message(string)

mkdir:
    client>:
            >> mkdir >> directory
    server>:
            if success >> (nothing)
            else       >> some_message(string)

touch:
    client>:
            >> touch >> file
    server>:
            if success >> (nothing)
            else       >> some_message(string)

rm:
    client>:
            >> rm >> file/directory
    server>:
            if success >> (nothing)
            else       >> some_message(string)

dl:
    client>:
            >> dl >> file/directory
    server>:
            while true:
                >> flag(unsigned char)
                if flag is sndfile:
                    >> filename(string)
                else if flag is snddir:
                    >> directoryname(string)
                else if flag is sndtxt:
                    >> filecontent(bytes)
                else if flag is done:
                    >> some_message(string)
                    break

ul:
    client>:
            >> dl
            while true:
                >> flag(unsigned char)
                if flag is sndfile:
                    >> filename(string)
                else if flag is snddir:
                    >> directoryname(string)
                else if flag is sndtxt:
                    >> filecontent(bytes)
                else if flag is done:
                    >> some_message(string)
                    break
    server>:
           


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值