文件传输系统之构架

转载 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 等的提示,上述的文章已经做了相关的修补

应用系统之间数据传递的几种方式

本文转载自sina_blog(siangzhang) 随着近年来SOA(面向服务技术架构)的兴起,越来越多的应用系统开始进行分布式的设计和部署。 系统由原来单一的技术架构变成面向服务的多系统...
  • erhei0317
  • erhei0317
  • 2016年09月20日 21:16
  • 3181

系统架构师成长之路(一)

系统架构师是近几年来在国内外迅速成长并发展良好的一个职业,它对系统开发和信息化建设的重要性及给IT业所带来的影响是不言而喻的。做为一个职场新人,如何发展成为架构师,架构师都需要具备哪些素质?...
  • sunlei1980
  • sunlei1980
  • 2016年05月07日 19:23
  • 6358

两台Linux系统之间传输文件的几种方法

scp传输当两台LINUX主机之间要互传文件时可使用SCP命令来实现scp传输速度较慢,但使用ssh通道保证了传输的安全性复制文件 将本地文件拷贝到远程 scp 文件名 –用户名@计算机IP或者计...
  • gatieme
  • gatieme
  • 2016年06月14日 17:11
  • 18982

c#语言C/S构架的TCP文件传输测试程序

  • 2015年06月16日 14:19
  • 109KB
  • 下载

notepad++跨系统文件传输功能插件

  • 2017年10月26日 21:31
  • 2.36MB
  • 下载

基于UDP协议文件传输系统项目要求书

  • 2015年04月22日 00:17
  • 77KB
  • 下载

基于UDP协议的文件传输系统项目要求书

  • 2014年07月05日 09:25
  • 82KB
  • 下载

分布式存储系统中文件传输优化的设计与实现

  • 2010年12月15日 14:34
  • 989KB
  • 下载

华东交通大学文件传输管理系统

  • 2003年12月31日 00:00
  • 170KB
  • 下载

串口文件传输系统源代码

  • 2006年01月13日 09:51
  • 685KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件传输系统之构架
举报原因:
原因补充:

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