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

49 篇文章 0 订阅
20 篇文章 0 订阅

服务器管理一个目录,远程客户端可以对这个目录进行几个简单的命令(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>:
           


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值