技术文章

当前页面: 首页 >技术文章 >网络数码扩印系统影像传输方案的设计

网络数码扩印系统影像传输方案的设计

供稿:中国工控网 2006/5/19 9:54:00

0 人气:2158

关键词:数码扩印系统;消息应答机制;Winsock;多线程
中图分类号:TP393.093 文献标识码:A
Design of Digital Images Transmission Scheme of Network Digital
Photofinishing System
ZHENG Gu-ping, SUN Lin-jun, HU Chao-ju, TIAN Zhi-gang
(Computer Science Department, North China Electric Power University, Baoding 071003, China)
Abstract: Digital images need to be transmitted via Internet in a digital photofinishing system. To ensure the reliability and veracity of transmission, a efficient solution scheme is presented by introducing to - and- fro mechanism of message combined with some security policies as user authentication, data encryption and re- transmission mechanism and it is implemented based on some technologies such as Winsock and multithread.
Key words : digital photofinishing system; to - and - fro mechanism of message; socket; multithread
1 引言
随着宽带网络的普及和数码影像服务的迅猛发展,网络数码扩印业务开始受到广泛关注。在一些采用连锁加盟模式的数码扩印行业中,各个加盟店与总店分处不同的地域,为了缩短扩印周期,提高工作效率,就需要通过Internet将数码影像传输给总店实现扩印。使用E-mail和一些FTP客户端软件虽然可以实现远程文件传输,但存在安全性差,操作不方便,易丢失文件等缺点,不能满足数码扩印系统对影像文件的传输要求。在此基础上,论文就网络数码影像传输方案进行了一些有益的探索,保证了互联网上影像文件传输的高效率和高可靠性。
2 总体方案
数码影像传输子系统采用Client/Server结构,开发工具为VC++.NET。总体思路是利用MFC的CSocket类控制客户端(加盟店)与服务器端的安全连接。当连接建立后,在Winsock程序中使用多线程和MFC Winlnet类将影像文件传送到FTP服务器上。这种方式解决了仅用socket传送较大的文件时需分割文件的弊端,使程序编制更为灵活,提高了效率和软件的可靠性。总体结构如图1所示。



2.1 通信机制及安全策略
为了不使文件误传到冒名主机,并防止服务器上“脏”数据的出现,客户端和服务器端在进行文件传输前,首先应进行身份鉴别,确认对方的身份,而且,还应对敏感信息进行加密,保证即使第三方截获了信息也无法得到其内容。此外,为了防止非法用户入侵服务器,FTP密码需要经常更换。出于以上考虑,论文设计了一种基于Winsock的通信应答机制来控制连接。
下面以新订单的传送过程为例,详细说明该应答机制。
(1)首先,客户端与服务器端建立socket连接。服务器接着发出经过加密的消息“MSG-ASK- LEAGUE”,表示要求客户端发送注册信息,并等待应答;
(2)客户端收到该消息后,调用解密模块得到消息内容,然后将“MSG-ANSWER-LEAGUE”连同自己的身份信息加密发送;
(3)服务器对解密后的身份信息进行验证。若通过验证,则将“MSG-FTP-PWD”及FTP服务器的密码一起加密传送;否则由服务器端关闭连接。
(4)客户端调用身份认证模块验证服务器的身份。若身份合法,发送加密后的消息“MSG-ASK- NEWORDER”,表示请求上传新订单。否则,客户端关闭连接。
(5)服务器若同意上传,则为客户建立存储订单信息及图像的文件夹,并将上传目录及“MSG- ANSWER-NEWORDER”一起发送。
(6)随后客户端发送“MSG-FTP-SENDING”开始文件传输过程。
(7)当服务器接收完成并将上传的订单信息成功保存到数据库后,向客户端发出“MSG-SAVE- OK"消息,结束此次传送。整个应答过程如图2所示。


2.2 重传机制
由于互联网网络连接不稳定,易导致文件中途传输失败,出现服务器端影像文件不全的现象。为此,系统引入了重传机制,对客户端上传程序进行错误控制处理,并根据程序返回的信息确定传送成功与否。若传送成功,则继续上传其它影像文件。在传送失败时,记录该文件信息,并将此信息追加到当天的日志文件中,供客户端维护查看。在下次连接时,客户端程序会自动从断点处开始重新传送上次未传完的文件,从而解决了文件丢失问题。
3 具体设计与实现
3.1 客户端部分
3.1.1 多线程的使用
系统中,客户端先根据用户需求,对每个数码影像文件填写详细的扩印单,包括扩印尺寸及数量、相应模板、规格、是否具有特色服务等,并将这些扩印信息以一定格式保存在文本文件中,将其连同数码影像文件上传至服务器中同一客户文件夹中。由于文件传输量大,互联网传输速率较低,为了不妨碍用户界面上的操作和显示,客户端创建线程CFtpThread和CFtpContinueThread分别完成文件传送和续传,实现多任务并行。
3.1.2 流程描述
为了清楚地描述客户端的工作流程,采用图3加以说明。其中状态转移的前缀C表示客户端,S表示服务器端。


图中各状态描述如下:
S0:客户端处于未连接状态
S1:客户端发送身份信息请求连接,等待服务器的回答
S2:客户端收到服务器的应答信息,以及FTP服务器密码
S3:连接请求失败
S4:客户端成功验证服务器身份
S5:客户端连接FTP
S6:客户端发送查询请求
S7:客户端成功登陆FTP服务器
S8:客户端等待服务器回应上传新订单请求
S8:客户端得到上传允许
S9:客户端上传影像文件
S10:客户端传送完毕
S11:连接关闭
3.2 服务器部分
对于客户端来说,只需管理一个连接套接字,而服务器端需要并行处理多个客户端的连接请求,接收所连接的各个客户端发来的消息,并向相应客户端发送应答消息。为此,服务器端应用程序中使用两个套接字类CListenSoeket和CClientSocket分别用于管理监听和管理连接,并采用链表的形式来管理多个CClientsocket连接套接字对象。一旦检测到有客户端连接,即为每个客户端分别建立一个 Socket并加入链表,以此来避免通信混乱。
服务器端在收到数据包后,根据当前的网络状态及接收的消息类型,用Switch语句分别作出不同的处理。
Switch(m-CurState)//m-CurState为当前网络状态
{case Net-Only-Linked:
//服务器端收到的消息类型为MSG-ANSWER-LEAGUE,则对用户信息进行认证。否则返回错误,并由服务器关闭连接。
If(m-pDoc->CheckLeague(pCMsg,theleague))//如果通过身份验证,则加密发送消息MSG-FTP-PWD及FTP密码
{m-NetPass.SetUserPWD(pSMsg,sizeof(TNetMsg));//用加盟店注册密码加密
m-NetPass.SetCommPWD(pSMsg);//用公共密码再次加密
SendMsg(pSMsg);}
else{Delthis();//关闭连接}
break;
case NET-SENT-FTPPWD://收到的消息类型如果不是MSG-FTP-PWDOK,则关闭连接
break;
case NET-FTP-LINKEDOK:
switch(pCMsg->mask)
{case MSG-ASK-NEWORDER://客户端请求发送新订单
if(!m-pDb){return;}//不能打开数据库
CreateDirLeague(m-CurOrder);//创建接收目录
SaveOrderToDb(szCurOrder);//向数据库保存订单信息
SendMsg(pSMsg);//发送MSG-ANSWER-NEWORDER及上传目录信息
break;
case MSG-ASK-ORDER://查询订单扩印情况
SendMsg(pSMsg);//发送MSG-ANSWER-ORDER及查询结果
}
}
4 结束语
论文详细讨论了网络数码扩印系统影像传输方案的思想及具体设计,通过客户端和服务器端事先约定的通信机制及Winsock、多线程技术,实现了互联网上影像传输的安全性和可靠性。系统在客户端界面设计上参照微软的Outlook,界面友好,操作方便。该系统已在某国企投入使用,效果良好。
参考文献
[1]林峰,周正利.基于多线程C/S模型的财经网络传输系统设计[J].计算机工程与应用,2003,39(8):184~186.
[2]Anthony Jones.Windows网络编程技术[M].北京:机械工业出版社,2002.
[3]万跃华,胥芳,张宪.Visual C++.NET网络编程[M].北京:科学出版社.2002.

更多内容请访问 中国工控网(http://www.gongkong.com)

手机扫描二维码分享本页

工控网APP下载安装

工控速派APP下载安装

 

我来评价

评价:
一般