您的位置:首页 > 其它

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

2012-06-03 12:51 501 查看
服务器管理一个目录,远程客户端可以对这个目录进行几个简单的命令(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>:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐