文件传输系统之构架

转载 2006年06月04日 21:11:00

  今天准备写一个文件传输系统。它功能主要为传送服务器上的文件。其特性为,P2P加C/S结构。系统中的组成为中央服务器(可含文件服务器)加客户机(文件服务器),采用断点续传的TCP传输方式(分为仿TCP的UDP或TCP传输)。文件传输模式为对等访问,每台机器都可以是文件服务器,或是客户机。
  开发工具:VC++6.0  sp6,MS SQL server7.0或2000
  运行环境:服务器,Windows2000,客户机,Windows98,WindowsXP或Windows2000。
  计算机管理,每个客户机都要向服务器进行注册,其信息包括网关IP,网关端口号,用户机器IP,用户机器端口号。它们作用主要有两点,第一,客户机可以利用其它机器的注册信息进行P2P传输活动,第二,可以判断目标机是否在同一个局域网内(GatewayIP的网络号相同),如果是,则直接用TCP进行Socket连接。用户名只能是唯一标识,网络中也只能存在于一台机器中,不能重复登录。用户所在机器与中央服务器断开或失去连接的时候,服务器将清除相关的IP信息,及设定它为未登录。
  文件的共享,一般要由用户通过操作界面设文件为共享。每台客户机与服务器连接后,都将在中央服务器上进行登录,并将共享的文件在中央服务器上进行注册(本地也有该用户的共享文件信息),并将更新过的文件对服务器进行通告,中央服务器在收到通告后,对该文件进行处理;如果是新增的文件,则该用户拥有计数器加1;反之,如果用户取消了该文件的共享或删除了该文件,则计数器减1,为0时,清除服务器拥有标识。
  文件信息存储,每个文件的记录也将拥有一个页面链接,里面记录着拥有该文件的客户机的信息(包括中央服务器)。下载前,文件名需要在中央服务器的数据库中进行搜索。确定所要下载的文件后,被访问最少的客户机(文件服务器)的优先级将最高,并将该客户机(文件服务器)的IP联接信息返回给访问者客户机,客户机将使用该信息对最终的客户机(文件服务器)进行数据传输操作。每一次的文件传输都可以在中央服务器中记录下来。
  文件也可以放在中央服务器也可以放在客户机上面,但这是在用户量比较少的情况下,中央服务器是一个存放客户机的地址信息的机器,文件传输是P2P的,每台客户机也可以做为文件服务器的,所以在中央服务器处在机器上也可装一个文件服务器。
客户机的文件列表可以按照定好的分类(由管理员维护修改)在共享空间中进行整理,如企业方面的开发部文档,测试部门的测试报告等。
  共享文件信息的管理分为增加、修改和删除三种。
  增加:文档清单分导入和新建两种,新导入的共享文件信息经过确认后可以成批地发向中央服务器,而新建的共享文件信息则单独发到中央服务器上面;中央服务器收到后对相应的文件名进行检查,如果中央服务器已经存在了同名的文件,则在其资源上加一,并将用户信息的指针或链接压入其拥有者的列表中,如果没有该信息,则建立,其它的操作如前面所述。服务器关闭时,将保存它的列表。
  修改:只对每个文件名信息进行单独修改,修改并确认后被发送到中央服务器中;中央服务器收到后对相应的文件名进行检查,如果发现没有相关信息,则新建,操作如增加项所述。
  删除:可以成批或单独删除,并将被移除的文件信息发送到中央服务器中,对相应的文件项进行资源减一操作,并清除所附的链接。
  客户访问服务器文件可以返回排队结果,为了平衡网络访问压力,对于大文件的访问的权限将低于小文件的权限。
  上述为文件系统的最终运行过程,界面信息尚未定义。
  在最终系统交付用户前,提供演示之用时,Demo的设计将分别为两部分,客户界面与数据操作过程(网络传输系统和数据库)。
  界面:服务器只有启动和停止两按钮,为中央服务器。在客户端上显示服务器共享的信息列表,并提供另存的路径方法。
  数据操作过程:一般初始为5个线程进行断点续传,同时只能有一个任务。
   类结构:
   CLCTaskQueue:任务队列;
   CLCTask:任务类;
   CLCTimer:定时器;
   CLCThread:线程类;
   CLCThreadPool:线程池管理;
   CLCCompletionPortSocket:服务器应用;
   CLCDatabaseProcess:数据库的访问方法;
   CLCEmuluatorTCPSocket:仿TCP传输方式的UDP Socket类;

补充:

感谢feifan、fkb 等的提示,上述的文章已经做了相关的修补

相关文章推荐

Linux系统的文件传输工具RZSZ

RZSZ简介 一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地...

书:深入理解计算机系统(P649) 之 并发编程:用socket实现多客户端的文件传输

Section I Problem Specification 实验要求:上一次实验是传输在客户端和服务端之间传输文字,这次是在客户端索要服务端的文件,服务端将文件传输给客户端。并且还要实现并发编程,...

串口文件传输系统

  • 2015-06-03 09:10
  • 684KB
  • 下载

Linux C编程连载【4】-基于TCP/IP的文件传输系统

一、        设计目的 通过Linux C编程,设计一个基于TCP/IP的文件传输系统,实现网络文件的收发。 二、        设计环境 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)