Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9428099
  • 博文数量: 1227
  • 博客积分: 10026
  • 博客等级: 上将
  • 技术积分: 20273
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-16 12:40
文章分类

全部博文(1227)

文章存档

2010年(1)

2008年(1226)

我的朋友

分类: C/C++

2008-03-12 20:17:18

关键字:文件,加密,网络,数据库,Socket,ADO,XML,Shell

FMail 简介

  FMail是一款局域网内文件传输工具,辅助用户完成日常工作中的文 件传输任务。从功能方面讲,该软件实现了文件的单发和群发,用户查找,群发组管理,接收历史查询,远程用户维护,记录系统日志以及Shel与FMail系统之间的文件拖拉等功能。本软件是完全免费的绿色软件,使用简单方便,适用于Win9x / Win2000 / WinXp 等大多数Windows平台;而从软件设计角度看,该系统为简单的C(文件传输客户端) / S(文件传输服务端) / S(数据库服务端)结构,文件传输为典型的Peer-to-Peer通讯。

开发环境
  • Microsoft Windows 2000 (Service Pack 3)
  • Microsoft Visual C++ 6.0
  • MySql 3.23.52 + Microsoft Paradox 7.0
  • Microsoft ADO + Windows Socket Library 2.0
  • 客户端数据访问机制

      FMail本着使用方便的原则来规划,设计系统。为了最大限度减少客户端环境配置的过程,客户端不直接和后台数据库交互,其中数据集查询采用了文件交互方式,具体的交互过程为:Agent发送SQL请求,服务端接收Agent SQL请求然后服务器通过ODBC直接与后台MySql数据库交互,最终将处理结果返回给Agent,Agent接收到SQL返回结果并做相应的数据处理。

    附加库

    NetLib库

      NetLib库是网络通讯基础,系统所有的网络通讯功能都由该库提供,其中包括了客户端和服务端.该库封装了原始Socket绝大部分操作,在原始Socket封装类的基础之上又封装了阻塞和非阻塞模式的客户端、服务端Socket(Fmail系统采用了异步Socket和同步Socket混合的通讯模式),并在此基础上完全封装了文件发送和文件接收类;除此之外该库还封装了线程、线程池、互斥量、互斥列表、互斥向量等常用对象.对于NetLib库该系统以DLL方式来发布。

    ADODB库

      ADODB库是数据库访问的基础,该库封装了ADO数据库操作的主要对象:_ConnectionPtr,_RecordSetPtr和_FieldPtr对象.除此之外该库还封装了_variant_t和time基础类,使得对各种类型的字段存取操作更方便.

    Agent功能图示



      对应该工具栏功能依次为:刷新用户列表;搜索某一用户;当前用户改名;查看当前用户的主机地址;添加文件;移除发送列表中文件;发送文件;取消发送;系统设置;隐藏系统和系统帮助。


    图一


    图二


    图三


    图四

    结尾

      对于整个FMail系统来说,以上罗列内容只是其中很少一部分,关于内部机制在此我就不一一叙述,系统所有源代码都包含在压缩包内,如果您觉得该系统对您有价值请您为该系统打分评价,同时欢迎大家来信探讨,学习。高效,一流是我不变的追求!


    阅读(1345) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~