嵌入式自助服务终端_第1页
嵌入式自助服务终端_第2页
嵌入式自助服务终端_第3页
嵌入式自助服务终端_第4页
嵌入式自助服务终端_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录摘要IAbstractII第1章 引言11.1课题背景和历史意义11.2国内外发展状况及发展趋势11.3课题内容2第2章 系统总体设计方案32.1编译环境介绍32.2开发语言介绍42.3功能需求分析:42.4系统的整体功能和工作原理52.4.1系统的整体功能52.4.2系统的工作原理6第3章 具体模块设计及实现73.1设备端业务功能73.1.1系统开机73.1.2充值缴费83.1.3话费查询93.1.4历史账单93.1.5历史详单103.1.6购买电子卡113.1.7系统设置113.1.8日志信息123.1.9非正常流程处理123.2接入服务器功能123.2.1接入功能123.2.2业务

2、处理133.2.3终端管控133.2.4实时日志133.2.5线程池设计133.2.6动态数组设计133.2.7心跳实现133.2.8断线重连处理143.2.9不完整包检测和处理143.2.10交易可靠性设计15第4章 系统测试164.1测试目标164.2业务实现164.2.1系统开机164.2.2充值缴费操作174.2.3话费查询操作184.2.4历史账单查询194.2.5历史详单查询194.2.6购买电子卡操作204.2.7系统设置操作214.3结果分析22第5章 结束语23参考文献24致 谢25附录26摘要本系统的设计实现了一款营业厅自助服务终端的业务功能,可以进行信息自助查询、业务自助

3、缴费等操作。该系统由设备终端业务功能、前置终端接入服务器两大部分构成,设计是在Linux环境下开发调试,采用大并发通信框架思想和自定义协议,基于TCP SOCKET封装了包含通信组建、动态数组以及线程池等技术的通信框架。 关键字:自助服务终端,大并发,线程IAbstract The system is designed to achieve a self-service terminals operating room business functions, you can self-check of information, business self-service payment and

4、 other operations. The system consists of terminal equipment business functions, front terminal access server, two major parts, the design is in the Linux development environment debugging, using large concurrent communication ideological framework and custom protocol, based on TCP SOCKET communicat

5、ions package containing formation, dynamic arrays and communication technologies such as thread pool framework.Key Words: Self-service terminals; Large concurrent; ThreadII第1章 引言1.1课题背景和历史意义随着全球一体化的强化和我国信息化建设脚步的加快,各个行业的生产和服务效率需求不断提高,自助服务终端开始从银行业向其他领域快速扩张,应用范围扩张到电信、电力、医疗、航空、零售等多个行业和领域。2013-2017年中国自助服

6、务终端行业市场前瞻与投资战略规划分析报告显示,尤其是随着银行、电信行业的较快发展,营业网点的快速建设,以及主要行业服务、信息化建设水平的不断提高,对于自助服务终端的需求量均在快速增加。以电信行业为例,我国电信行业从2000年开始引入自助服务终端,截至2010年底,该行业中高端自助服务终端的保有量突破6万台。自助服务终端市场的持续发展,也引起了企业之间的激烈竞争。国外先进企业,如NCR、迪堡、德利多富、泰雷兹等纷纷看好中国市场,通过各种方式积极参与到国内市场的竞争中来。在激烈的市场竞争中,部分实力较强,经营管理较好的国内领先企业脱颖而出,如广电运通、南天信息、御银股份等知名企业。与此同时,部分企

7、业加大了投资力度,以在行业快速发展的大好形势下占据一席之地,如国内专用打印机行业龙头新北洋增资子公司诺恩开创,广电运通新建ATM和AFC生产基地等。前瞻网认为,运营模式的创新也为自助服务终端行业的快速发展提供了强劲动力。合作运营的新模式不仅为银行、电信、航空、零售等主要下游企业解决了资金与发展的难题,也带动了自助服务终端行业的市场规模的不断扩大,为企业的发展提供了广阔的空间。1.2国内外发展状况及发展趋势虽然进入2002年以来,中国的移动电话用户发展速度放缓,但是移动通信业距离需求饱和还有一定的距离。到2002年10月,中国的移动电话普及率为14.95部/百人。与发达国家相比还有很大的差距。如

8、果单纯从移动用户的发展上来看,移动通信仍然有较大的发展空间。 “十五”期间,移动通信产业将保持20%以上的年增长速度。到2005年末,内地移动电话用户将超过2.6亿。 从移动通信的业务方面看,移动通信的发展空间仍然很大。由于独特的“移动性”,移动通信把人们从固定电话的旁边解脱出来。过去人们在进行通信的时候由于受线路和设备的制约,不得不将就设备。这一点并不符合人的天性。人类永远在追求的是要征服自然。发明机器也是要为自己服务。移动通信的发展可以实现个人通信的梦想,即无论何时、不论何地与任何人通话。移动通信本身就带有个性化的本质。因此必然走向个人通信系统。 展望未来,人类需要随身携带的是多功能信息终

9、端。这里的信息已经不是简单的原始意义上的通信。原始意义上的通信是一对一的,以缩短时间和距离为目的。而未来通信的意义将不只是这些。在信息时代,人们需要随时获取、掌握各种信息。这时通信的目的就发生了根本的变化。从缩短时间、距离变成了减少获取信息的成本。形式上也从一对一变成了一对一、一对多等形式的综合。因此在对通信的概念扩大以后。运营商的角色变成了信息的汇集者。几乎所有与“移动”相关的业务,移动运营商都可以尝试参与。移动运营企业的前景还很广阔。1.3课题内容本课题主要是模拟实现中国电信(或者移动联通)营业厅自助服务设备的业务功能;由设备端业务功能、前置终端接入服务器构成。 接入服务器接受各设备端的连

10、接,并管理各设备端信息,对于连接但长久未登录的设备连接能及时关闭,能在后台管理模块控制各设备的“开”、“关”,在一定时间内没有收到客户端心跳时,会强制关闭设备端的连接并删除客户端信息。用户可以在这个自助服务终端上进行的操作有:(1) 充值缴费;(2) 余额查询;(3) 历史账单查询;(4) 历史详单查询;(5) 购买电子卡;(6) 系统设置。- 15 -第2章 系统总体设计方案2.1编译环境介绍本课题的编译环境是Linux操作系统。Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。Linux是一套免费使用和自由传播的类Un

11、ix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 Linux是一个领先的操作系统,可以运行在服务器和其他大型平台之上,如大型机和超级计算机。世界上500个最快的超级计算机90%以上运行Linux发行版或变种,最快的前10名超级计算机运行的都是Linux操作系统。 Linux也广泛应用在嵌入式设备上,如手机、平板电脑、路由器、电视和电子游戏机等。在移动设备上广泛使用的Android操作系统就

12、是创建在Linux内核之上。 Linux系统在短短的几年之内就得到了非常迅猛的发展,这与Linux系统的良好特性是分不开的。Linux系统包含了UNIX系统的全部功能和特性,简单地说,Linux系统具有以下主要特性:一、系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互连。系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。Linux和Unix都具有多用户的特性。二、各个程序的运行互相独立。Linux系统调度每一个进程平等地访问微处理器。由于CPU的处理速度非常快,其结果是,启动

13、的应用程序看起来好像在并行运行。事实上,从处理器执行一个应用程序中的一组指令到Linux调度微处理器再次运行这个程序之间只有很短的时间延迟,用户是感觉不出来的。Linux向用户提供了两种界面:用户界面和系统调用。Linux的传统用户界面是基于文本的命令行界面,即shell,它既可以联机使用,又可存在文件上脱机使用。shell有很强的程序设计能力,用户可方便地用它编制程序,从而为用户扩充系统功能提供了更高级的手段。可编程Shell是指将多条命令组合在一起,形成一个Shell程序,这个程序可以单独运行,也可以与其他程序同时运行。系统调用给用户提供编程时使用的界面。用户可以在编程时直接使用系统提供的

14、系统调用命令。系统通过这个界面为用户程序提供低级、高效率的服务。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。三、操作系统把所有外部设备统一当作文件来看待,只要安装它们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。具有设备独立性的操作系统,通过把每一个外围设备看作一个独立文件来简化增新设备的工作。当需要增加新设备时、系统管理员就在内核中增加必要的连接。这种连接(也称作设备驱动程序)保证每次调用设备提供服务时,内核以相同的方式来处理它们。当新的及更好的外设被开发并交

15、付给用户时,操作允许在这些设备连接到内核后,就能不受限制地立即访问它们。设备独立性的关键在于内核的适应能力。其他操作系统只允许一定数量或一定种类的外部设备连接。而设备独立性的操作系统能够容纳任意种类及任意数量的设备,因为每一个设备都是通过其与内核的专用连接独立进行访问。Linux是具有设备独立性的操作系统,它的内核具有高度适应能力,随着更多的程序员加入Linux编程,会有更多硬件设备加入到各种Linux内核和发行版本中。另外,由于用户可以免费得到Linux的内核源代码,因此,用户可以修改内核源代码,以便适应新增加的外部设备。完善的内置网络是Linux一大特点。Linux在通信和网络功能方面优于

16、其他操作系统。其他操作系统没有如此紧密地和内核结合在一起的连接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。2.2开发语言介绍本课题所使用的开发语言是C+语言。C+是由C发展而来的, 与C兼容 用C语言写的程序基本上可以不加修改地用于C+ 从C+的名字可以看出它是C的超越和集中 C+既可用于面向过程的结构化程序设计, 又可用于面向对象的程序设计, 是一种功能强大的混合型的程序设计语言 C+对C的“增强”,表现在六个方面: 类型检查更为严格、增加了面向对象的机制、增加了泛型编程的机制(template)、增加了异常处理、增加了运算符重载、增加了标准模

17、板库(STL)。作为一种计算机语言,C+语言有很多的优点,它既可以过程或程序设计,也可以记性面向对象程序设计,运算符和数据结构丰富,具有结构化的控制语句,生成目标代码质量高,程序执行效率高,与其他高级语言相比较,具有可以直接访问物理地址,能进行位运算的优点,与汇编语言相比,有良好的可读性和可移植性,因此,C+已经被普遍的应用于科学技术和日常生活的各个领域。2.3功能需求分析:功能需求分析表如表2-1:表2-1功能需求分析表模块名功能类别子功能设备端业务系统开机系统开机,业务菜单同步,软件版本同步以及其他初始化数据同步充值缴费手机一卡通充值话费查询余额查询、历史账单、历史详单查询购买电子卡购买一

18、张或多张的20.30.50.100的电子卡系统设置通过暗码,进入该功能,实现服务器IP和端口配置,并显示其他设置接入服务器各设备端接入接受个设备端的连接,并管理各设备端信息,对于连接但长久未登录的设备连接要及时的关闭,以节约资源各业务处理处理上述设备端个类型的业务控制命令发送在后台管理模块控制各设备的“开”、“停”,服务器需要将这些控制指令发送到设备心跳处理定时需要收到客户端的心跳,在一定时间内没有收到客户端心跳时,需要强制关闭设备端的连接并删除客户端信息并发负载初始化30处理线程,在不够处理并发的情形下,能及时唤醒一定两的处理线程,处理线程上线2002.4系统的整体功能和工作原理2.4.1系

19、统的整体功能自助服务终端是为小的营业厅专门设计,可完成系统开机、充值缴费、话费查询、购买电子卡,系统设置,并且记录数据,发送数据至服务器的简单的网络间的通信连接, 总体设计框架如图2-1图2-1 总体设计框架图 (1)UI层:直观的界面,用户根据提示进行操作; (2)业务逻辑层:设备的各类请求被发送到前置服务,由其进行协议解析和交易唯一性判断,而后转送到业务应用服务进行业务逻辑处理; (3)服务器:与前置接入服务一道为营业厅设备提供业务数据处理服务,并负责与核心交易系统的协议转换和对接;数据被送到业务应用服务后,系统为设备的该笔交易进行交易前的准备工作,并将交易业务数据进行分析、转换,记录交易

20、步骤,而后生成终端交易结果,通知系统前置接入服务告知给设备。2.4.2系统的工作原理该设备分为总共分为前置接入客户端,和接入服务器两个部分,前置客户端的功能是从UI界面获取客户所需的数据,客户端接收到数据后,将数据打包,通过Socket连接上网络,通过文件共享发送到服务器,服务器在接收到业务包后对包进行解析,并将包的内容写入到文件中,记录包的内容(即写到相应的文件中),再发给客户端一个应答包,在这一来一回的交互过程中完成客户的业务需求。功能整体框架图如图2-2图2-2 功能整体框架图第3章 具体模块设计及实现3.1设备端业务功能3.1.1系统开机(1) 电源开机,启动画面,设备初始化;(2)

21、设备进入登录界面,要求输入用户名和密码;(3) 客户确认登录后,设备软件读取配置文件中的设备ID 和PSAM卡ID以及软件版本和硬件版本;(4) 设备将提取到设备ID 、用户信息等数据等大送到服务器处理;(5) 服务器同步相关数据到设备端;(6) 登录成功后,系统显示该设备的业务菜单;(7) 等待用户输入客户端登录流程图如图3-1图3-1 客户端登录流程图3.1.2充值缴费(1) 用户输入要充值的手机号码;(2) 要求再次输入充值的手机号码;(3) 输入错误则提示“请输入11位号码”或者“充值失败,无此号码”;(4) 选择要充值的面值;(5) 设备显示确认信息,用户完成确认;(6) 设备将相关

22、信息按照协议发送到服务器交易;(7) 设备显示“交易中,请等待.”;(8) 显示交易结果,并可打印凭条;充值缴费流程图如图3-2图3-2 充值缴费流程图3.1.3话费查询话费查询菜单选择子功能(1) 客户在设备处输入要查询的手机号码;(2) 系统向客户手机发送验证码;(3) 客户在设备处输入“验证码”;(4) 系统发送客户手机号码和验证码到通信服务器,该业务被处理;(5) 设备显示手机余额;话费查询流程图如图3-3 图3-3 话费查询流程图 3.1.4历史账单(1) 客户在设备处输入一要查询的手机号码;(2) 系统向客户手机发送验证码;(3) 客户在设备处输入验证码;(4) 客户选择月份;(5

23、) 系统发送客户手机号码、月份数据、验证码到通信服务器,等待该业务被处理;(6) 设备显示客户月度的账单统计信息账单查询流程图如图3-4图3-4 账单查询流程图3.1.5历史详单(1) 客户在设备处输入一要查询的手机号码;(2) 系统向客户手机发送验证码;(3) 客户在设备处输入验证码;(4) 客户选择起始月份和终止月份;(5) 系统发送方客户手机号码、月份数据、验证码到通信服务器,该业务被处理;(6) 设备显示客户月度的详细信息。详单查询流程图如图3-5图3-5 详单查询流程图3.1.6购买电子卡(1) 选择要购买的面值20、30、50、100;(2) 用户输入要购买的张数;(3) 设备显示

24、确认信息,用户完成确认;(4) 设备将相关信息按照协议发送到服务器交易;(5) 设备显示“交易中,请稍候.”;(6) 显示电子卡密码,并通过打印凭条获取电子卡密码。购买电子卡流程图如图3-6图3-6 购买电子卡流程图3.1.7系统设置(1) 用户在主界面下输入暗码“#123456#”(2) 设备进入设备设置界面;(3) 可在此界面修改设备要连接的服务器IP地址和端口(4) 设置设备ID(5) 重新设置用户名和登录密码,发送服务器修改(6) 退出后,要立即保存到设备文件中系统设置流程图如图3-7图3-7 系统设置流程图3.1.8日志信息实现日志信息写入文本文件。包括启动日志,登录日志数据包,交易

25、数据包,接收数据包,心跳数据包,相关日志信息写入文本文件。文件每天生成一个,文件名为日期。日志内容包括:(1)时间:yyyy-mm-dd hh:mm:ss; (2)功能:登录; (3)类型:发送/接收; (4)终端ID:xxxxxx; (5)交易流水:0000000000; (6)发送数据包:十六进制信息(16个字节一行); (7)充值手机/交易金额:xxxxxxxxxxx/$。3.1.9非正常流程处理在进行手机充值时,若碰到中不返回的是“9999”这种错误编号的时候,等待一分钟后,再进行一次话费月的查询,到此时返回的话费余额=充值前余额+当前充值金额,则返回成功的结果,否则,返回充值失败,若

26、此次查询话费余额时,出现异常或不成功编号时,也返回充值失败。3.2接入服务器功能3.2.1接入功能(1)响应各设备端的接入请求;(2)完成登入验证功能(3)管理和登记各客户端的信息;(4)如果两分钟内未登录,则关闭连接,清除客户端信息3.2.2业务处理(1)一卡通充值;(2)买电子卡;(3)话费查询:余额查询、历史账单、历史详单;(4)心跳处理3.2.3终端管控在设计后台管理系统模块中,会对各个登记的客户端发出开停机等控制命令,要求接入服务器能够及时侦测后天管理模块发来的控制指令,然后把控制指令发送到对应的设备端,让设备端做出处理。如果是停机指令,在设备端直接进入停机界面,而不能进行任何的业务

27、办理,而关机重启设备后,设备登录后,设备端不进入业务菜单界面,而直接进入停机界面。如果是开机指令,设备端结束停机界面,进入业务菜单界面3.2.4实时日志实现启动该日志进程后能够查看当前连接情况等信息,关闭该进程后不影响后台业务处理,实时刷新日志信息实现日志信息写入文本文件,包括启动日志, 登录数据包,交易数据包,接收数据包,心跳数据包等,相关日志信息写入文本日志,文件每天生成一个3.2.5线程池设计线程池是通过创建管理线程来管理N个用户线程,即应用程序的多个用户线程可以逐个交付给线程池来管理,管理线程负责管理用户工作线程的唤醒/启动,停止/休眠以及销毁,即线程池的接口含有用户工作线程的唤醒、休

28、眠和销毁3.2.6动态数组设计C语言中的数组在定义的时候就必须确定数目,一旦确定,其长度就不可更改。但是实际开发过程中很多情况并不知道数组中能够保存的最大数目,如果预定义的太大,可能会浪费过多的空间,定义的太小又可能不满足系统要求,因此实际设计中需要一种动态的具有弹性伸缩能力的数组,这样实际需要多少元素就分配多少元素。C语言中提供了另外一种数组动态伸缩的方案,即就是使用malloc分配空间,将空间看做数组进行处理,不过,对于malloc分配的空间只能保存一种类型数据。如果需要保存其余类型,则需要重新分配3.2.7心跳实现由于线路等原因,中间过程中可能发生“断线”,服务器和设备端程序都无法侦测到

29、。为了能够及时发现断线,而启动断线重连机制,所以,在客户端应该能定时发送测试的“心跳包”。同时,为了减轻服务端的压力,服务器对于每个客户端发来的心跳包,就是丢弃,服务器维持一个客户端的心跳时长,当收到客户端的心跳包,该心跳时长则清零,则间隔时间内未收到,则心跳时长累计,一旦到了规定的时长,即服务器很久没有收到心跳,则服务器主动判断客户端已经断线,主动关闭Socket连接另外一个解决方案就是打开TCP协议的Keep-alive选项,设定发送间隔,让协议栈来侦测线路(协议栈本身完成“心跳”),一旦发现线路中断,则会Socket API函数通知应用程序,心跳设计流程图如图3-8图3-8 心跳设计流程

30、图3.2.8断线重连处理在设备开机后,设备和服务器保持长联系。由于线路等原因,中间过程中可能发生断线,此时,如果服务器侦测到,则需要主动关闭SOCKET连接,并清除保存在客户端信息; 如果客户端侦测到,则在UI界面上显示网络断线,但不能重启设备端,各工作单元不能释放,而是等网络重新连上后继续工作,因此,客户端需要定时发起连接。3.2.9不完整包检测和处理客户端发送数据报瞬间,线路发生中断,则服务器端可能收到不完整包,在后续又会收到不完整包,因此,服务器需要对数据包完整性进行校验,为了完成数据包的完整性检测,在数据包的前面和后面加上包头和包尾作为标志3.2.10交易可靠性设计设备端和通信服务器交

31、易数据的交互过程,考虑了下面几种情况(1) 设备端交易数据发出,但通信服务器未收到;(2) 设备端交易数据发出,通信服务器收到,交易结束后,通信服务器给设备发交易结果时失败,及此时设备端不在线;(3) 设备端交易数据发出,通信服务器收到,交易结束后,通信服务器给设备发交易结果时成功,但是设备端由于线路问题,却未收到;(4) 设备端交易数据发出,通信服务器收到,但交易超时;第4章 系统测试4.1测试目标(1) 测试系统是否能正常运作,能根据参数设置的要求产生满足条件的环境;(2)单客户单业务测试,单客户多业务测试,多客户多业务测试;(3)实现启动日志,登陆日志数据包,交易数据包,接收数据包,心跳

32、数据包等相关日志信息写入文本文件。4.2业务调试4.2.1系统开机 (1)电源开机,启动画面,设备初始化; (2)设备进入登录界面,要求输入用户名和密码;图4-1 登录界面 (3)登陆成功,进入业务菜单,可进行相应的业务操作。 图4-2 业务菜单界面4.2.2充值缴费操作(1) 终端输入要充值的号码、金额;向终端接入服务提交包含号码与金额信息的数据;图4-3 充值缴费界面(2) 终端接入服务进行数据验证;(3) 终端接入服务向业务应用接口机提交应用处理;(4) 业务应用接口将此次充值的结果反馈给终端,终端根据业务应用接口反馈信息提示充值成功或者失败。图4-4 提示充值成功4.2.3话费查询操作

33、(1) 手机机主向终端输入要查询的手机号码;图4-5 话费查询界面(2) 终端向终端接入服务提交业务类型以及手机号码;(3) 终端接入服务发送验证码短信给手机机主;(4) 手机机主接收到验证码后,向终端输入验证码;(5) 终端向终端接入服务提交验证码,终端接入服务校验验证码后,向业务应用接口机提交话费查询请求,业务应用接口机接收到请求后,向BSS接口提交话费查询请求;图4-6 提示查询成功(6) BSS接口、业务应用接口机、终端接入服务依次返回余额信息;(7) 终端显示手机话费余额。图4-7 显示用户当前余额4.2.4历史账单查询 (1)手机机主向终端输入要查询的手机号码; (2)终端向终端接

34、入服务提交业务类型以及手机号码;(3)终端接入服务发送验证码短信给手机机主;(4)手机机主接收到验证码后,向终端输入验证码;(5)设备显示客户月度的账单统计信息。图4-8 历史账单查询界面4.2.5历史详单查询(1) 客户在设备处输入一要查询的手机号码;(2) 系统向客户手机发送验证码;(3) 客户在设备处输入验证码;(4) 客户选择起始月份和终止月份;(5) 系统发送方客户手机号码、月份数据、验证码到通信服务器,该业务被处理;(6) 设备显示客户月度的详细信息。图4-9 历史详单查询界面4.2.6购买电子卡操作(1) 选择要购买的面值20、30、50、100;(2) 用户输入要购买的张数;(

35、3) 设备显示确认信息,用户完成确认 图4-10 购买电子卡界面 图4-11 购买电子卡核对界面(4) 设备将相关信息按照协议发送到服务器交易(5) 设备显示“交易中,请稍候.”(6) 显示电子卡密码,并通过打印凭条获取电子卡密码。 图4-12 购买电子卡成功提示 图4-13 显示电子卡密码4.2.7系统设置操作 (1) 用户在主界面下输入暗码“#123456#”; 图4-14 系统设置登陆 图4-15 提示暗码正确 (2) 设备进入设备设置界面;(3) 可在此界面修改设备要连接的服务器IP地址和端口;(4) 设置设备ID;(5) 重新设置用户名和登录密码,发送服务器修改;(6) 退出后,要立

36、即保存到设备文件中。 图4-16 系统设置修改界面 图4-17 提示修改成功 4.3结果分析经过对本系统的功能进行连续多次地运行调试,得出以下结论:(1)本系统开机后能正常工作,相应的功能模块都能很好地满足用户的需求;(2)本系统能承受比较大的业务量压力,具有较好的并行处理能力;(3)实现了日志信息写入文本文件,包括启动日志、登陆日志数据包、交易数据包、接收数据包、心跳数据包等。文件每天生成一个。- 30 -第5章 结束语这个自助服务终端系统的设计能很好的完成小型的营业点的手机的充值缴费、话费查询、账单查询,详单查询,购买电子卡等功能,能满足用户的基本业务需求,起到了用户与通讯运营商之间的桥梁

37、作用,较好地实现客户与通讯运营商之间的信息交互,在节省运营商的人工成本的同时更是大大地方便了用户的业务办理,避免了繁杂的手续,用户不必为了缴纳话费或者查询话费而到人工服务窗口排队,自然心情舒畅,而运营商则牢牢地抓住了用户的需求,从而达到一个双赢的局面。在做这个课题的过程中我也遇到了很多的问题,通过大量地查阅文献资料以及询问老师和身边的同学,才一点点地把问题解决。技术在飞速地发展更新中,如果不及时地学习进取终将会被淘汰。纸上得来终觉浅,只有通过实践才能检验许多的可能性,才能了解社会上的主流技术和用户的需求点,才能创造出有价值的东西。这个课题对我来说不太容易,但选择这个课题既是对自己的挑战更是对自

38、己的要求。这个课题很好的锻炼了我的独立思考能力,我将所学的知识做了一个很好的整合,并做了深刻的检讨,揣摩自己是不是在大学所学的知识能不能应用到自己的设计中,也做了很好的总结。参考文献1 谭浩强. C程序设计(第三版). 北京:清华大学出版社, 20052 岳浩. Linux操作系统教程. 北京:机械工业出版社, 2005.43 于明等. Visual C+程序设计教程. 北京:海洋出版社, 20014 温秀梅. C+语言程序设计教程与实验. 北京:清华大学出版社, 20095 柳青著. Linux应用教程. 北京:清华大学出版社, 20086 李成大. 操作系统Linux篇. 北京:人民邮电出

39、版社, 20057 艾德才. C+程序设计简明教程. 北京:中国水利水电出版社, 20008骆耀祖. Linux网络服务器管理教程. 北京:电子工业出版社, 20079 钱能. C+程序设计教程. 北京:清华大学出版社, 1999102013-2017年中国自助服务终端行业市场前瞻与投资战略规划分析报告前瞻产业研究 致 谢 时光飞逝,岁月如梭,不知不觉大学四年的学习时光已经接近尾声,在此我想对我的家人、我的母校、我的老师们和同学们表达我由衷的谢意。感谢我的家人这四年来对我的学习的默默支持;感谢我的母校*给了我在大学四年深造的机会,让我能继续学习和提高;感谢四年来的每一位任课老师的悉心教导;感谢

40、同学们这四年来的关心和鼓励;感谢宿舍舍友四年来的照顾。老师们课堂上的激情洋溢,课堂下的谆谆教诲;同学们在学习中的认真热情,生活上的热心主动,所有这些都让我的四年大学生活充满了感动。 接着我要感谢,非常感谢我的导师*博士。还清晰的记得第一次见*的情形。既有些不知所措,又想竭力表现以博得老师的关注。*为人随和热情,治学严谨细心。在闲聊中他总是能像知心朋友一样鼓励我,在论文的写作和措辞等方面他也总会以“专业标准”严格要求我,从选题、定题开始,一直到最后论文的反复修改、润色,*始终认真负责地给予我深刻而细致地指导,帮助我开拓设计思路,精心点拨、热忱鼓励。润雨细无声,默默浸润着我的学习和生活。论文之内,

41、我有成长,论文之外,更是受益良多。正是舒老师的无私帮助与热忱鼓励,我的毕业论文才能够得以顺利完成,谢谢*,在此祝愿他身体健康,全家幸福! 另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此向帮助和指导过我的各位老师表示最忠心的感谢!最后,对本文借鉴引用的著作的作者,以及百忙中抽出时间审阅本论文的专家学者,表示由衷的谢意。附录自助终端主函数源码:#include <ncurses.h>#include <sys/types.h> #include <sys/socket.h>#include <netinet/in.h&g

42、t;#include <arpa/inet.h>#include <string.h>#include <stdlib.h>#include <stdio.h>#include <unistd.h>#include <malloc.h>#include <fcntl.h>#include "List/List.h"#include "File/File.h"#include "Agreement.h"#include "Component/C

43、omponent.h"#include "Login/LoginForm.h"/登录界面#include "selectClient/selectClient.h"int ClientFd;char DeviceID10; CClient *CClient:pClient = NULL;int main()/int iflag = 1;char ClienIPAddr20 = 0;int ClientPort = 0;initscr();if(has_colors() = false)/颜色支持判断printw("不支持彩色!n&qu

44、ot;);endwin();return 1;/clear;start_color();/颜色开始init_pair(WHITE_BLUE,COLOR_WHITE,COLOR_BLUE);/白蓝init_pair(BLACK_WHITE,COLOR_BLACK,COLOR_WHITE);/黑白init_pair(BLACK_BLACK,COLOR_BLACK,COLOR_BLACK);/黑黑init_pair(BLACK_MAGENTA,COLOR_BLACK,COLOR_MAGENTA);/黑洋红init_pair(BLACK_CYAN,COLOR_BLACK,COLOR_CYAN);/黑青

45、init_pair(BLUE_BLUE,COLOR_BLUE,COLOR_BLUE);/蓝蓝init_pair(MAGENTA_WHITE,COLOR_MAGENTA,COLOR_WHITE);/洋红白init_pair(BLACK_RED,COLOR_BLACK,COLOR_RED);/黑红init_pair(BLACK_BLUE,COLOR_BLACK,COLOR_BLUE);/黑蓝init_pair(WHITE_WHITE,COLOR_WHITE,COLOR_WHITE);/白白init_pair(RED_WHITE,COLOR_RED,COLOR_WHITE);/红白init_pair

46、(RED_CYAN,COLOR_RED,COLOR_CYAN);/红青init_pair(RED_BLUE,COLOR_RED,COLOR_BLUE);/红蓝/读取配置文件CFile File;File.File_Read("Config.txt");strcpy(ClienIPAddr,File.GetIP();ClientPort = File.GetPort();memset(DeviceID, 0x00, 10);strcpy(DeviceID,File.GetDeviceID();/* 连接服务器 */CClient *pClient = CClient:GetI

47、nstance(AF_INET, SOCK_STREAM, 0);pClient->connectServ(AF_INET,ClienIPAddr,ClientPort);ClientFd = pClient->GetclientFd();LoginMain();endwin();return 0;后置服务器主函数源码:#include <stdio.h>#include <string.h>#include "poolManager/poolManager.h"#include "Task/Task.h"#inclu

48、de "Agreement.h"#include "shm_sem/shmfifo.h"#include "pressure/pTest.h"#include "file/file.h"int main()/读取配置文件CFile File("./peizhi.txt");int FunId;CPoolManager pm(File.GetThreadNum(), File.GetMaxThreadnum(); /初始化线程char * TaskData =(char *)malloc(1024);CShmfifo fifo(9999,1024,100);packet_header_st * headInfo;/request_login_st * data;while

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论