|
技术文库首页
|
编程
|
IC
|
晶体管
|
精解
|
中频
|
其它
|
电源
|
基础
|
电脑
|
无线
|
液晶
|
微波
|
空调
|
手机
|
|
热水器
|
电动车
|
LED屏
|
焊机
|
您现在的位置: 华玉生活网 >> 技术文库 >> 无线 >> 正文>> 繁體中文

IM软件在智能电话终端上的设计与实现

电话在经过数百年的发展之后,已从最早的简单接听和拨打设备,成为集录音留言、自动应答、个人信息管理和拨号上网等诸多功能于一身的智能电话终端。智能电话终端使人们能够更加高效、及时地处理周边的各种信息,满足不断发展的信息化要求。IM(InstantMessaging)软件即即时消息传递软件,它是目前网络上比较流行的杀手级应用程序(KillerApplication),如腾讯的QQ、Microsoft的MSN、AOL的AIM和ICQ等。无论在什么地方,使用何种设

电话在经过数百年的发展之后,已从最早的简单接听和拨打设备,成为集录音留言、自动应答、个人信息管理和拨号上网等诸多功能于一身的智能电话终端。智能电话终端使人们能够更加高效、及时地处理周边的各种信息,满足不断发展的信息化要求。

IM(Instant Messaging)软件即即时消息传递软件,它是目前网络上比较流行的杀手级应用程序(Killer Application),如腾讯的QQ、Microsoft的MSN、AOL的AIM和ICQ等。无论在什么地方,使用何种设备(如PC、手机、PDA和Web TV等),只要接入Internet,就能够同其他用户进行实时的消息和文件传递,甚至进行语音和视频交流。通过拨号接入Internet,就能在智能电话终端的原型机上实现基本的网络功能,如浏览器、电子邮件等。如果能在智能电话终端上实现IM的客户端软件,用户通过电话就可以进行实时交谈,进而进一步完善了其网络功能,从而增强了该产品在市场上的竞争力。

1 IM软件的设计方案

1.1 硬件平台

智能电话终端的原型机运行在基于ARM920T内核处理器S3C2410的嵌入式开发板上,该开发板由于性能优异、性价比高,因此适合于开发各类高端的手持、小型终端以及各种网络应用产品。它的标准工作频率为203MHz,核心板上的FlashROM和SDRAM均为64MB,并支持1024*768的液晶显示器,附带USB键盘和鼠标,可运行嵌入式Linux操作系统。为了降低整个系统的成本,设计过程中将该开发板改造成具有32MB的FlashROM和32MB的SDRAM的产品,并为其配置了支持16阶灰度的320*240液晶显示器。

1.2 IM软件的功能设计

近年来较为流行的即时消息传递软件很多,它们所提供的功能大同小异。这些客户端软件的根本区别在于客户机和服务器之间的通信过程分别基于不同的即时消息传递协议。通常,每一种即时消息传递软件都具有账号管理、联系人管理、即时消息收发等基本功能,在此基础上又有各自不同的特色功能,如语音聊天、视频聊天和表情管理等。

在众多的即时消息传递软件中,MSN是最受欢迎的软件之一,其通用性和齐全的功能特性得到了用户的广泛肯定。在许多平台上都有由第三方开发的MSN客户端软件,人们对其协议内容早已作了深入的研究和详细的分析,这对开发人员具有极大的参考价值,能够使开发周期大大缩短。本文介绍实现MSN客户端的一些基本功能的方法,包括用户登录、联系人管理和即时消息收发和显示等。

1.3 MSN协议及其模型

MSN协议是采用C/S模型的应用层协议,其命令采用字符形式。客户端应用程序必须以协议规定的顺序在规定的时间内向服务器发送请求,接收应答信息,通过这种机制实现服务器与客户端的通信。由于客户端软件并非始终与单一服务器进行交互,MSN协议要求其客户端在不同的阶段与不同的服务器建立连接,传输相应的账号或数据信息,因此首先必须了解MSN服务器的类型和作用。

MSN服务器分为通知服务器(Notification Server,NS)和接线服务器(SwitchBoard Server,SBS)两种。前者负责用户的登录及身份验证工作,包括联系人列表的增加、删除、修改和状态等信息都通过NS传输;后者则用于提供即时通信服务,即用户聊天消息的收发和文件的传输等都是由SBS实现的。MSN的通信模型如图1所示,客户端在登录时首先与NS建立连接,将用户账号和密码信息加密后发送给NS,再由NS进行身份验证。若验证通过,则NS把用户登录到SBS的Cookie令牌以及该用户的联系人列表和相应的状态信息发送到客户端,由客户端软件进行显示。当用户开始同联系人进行聊天会话时,客户端同SBS建立连接,将从NS得到的Cookie令牌交给SBS,SBS验证Cookie令牌的有效性,验证通过后,客户端就可以发送和接收即时消息及文件。最后在用户退出会话后,关闭同SBS的连接,此时只存在与NS的连接。图中的虚线表示NS和SBS的通信过程。由于对客户端来说这个过程是透明的,因此可以认为它是一个黑盒子而不必关注。

1.4 IM软件的系统结构

本系统主要由显示界面、登录模块、联系人管理和即时消息收发四个部分组成。

(1)显示界面

界面设计可以分为登录界面及主界面两个部分。登录界面提供用户账号和密码的输入。主界面由一个菜单栏和三个窗口构成。在用户状态菜单中,用户可以选择联机、离开、忙碌等六种状态;联系人菜单实现了对联系人的增加、删除、修改等工作。三个窗口分别为联系人列表窗口、消息发送窗口和会话窗口。联系人列表窗口列出所有联系人的昵称及其状态信息;消息发送窗口用于输入需要发送的内容;会话窗口中按顺序依次显示用户所发送的消息和对方的应答消息。

(2)登录模块

与NS服务器建立连接,传输加密的用户账号和密码信息,接收NS返回的应答信息,并从应答信息中抽取出SBS服务器的地址和用于登录到该服务器上的Cookie令牌。

(3)联系人管理

提供对联系人的增加、删除和修改等功能。在MSN中为了便于管理,联系人可以分成不同的队列,如好友、家庭成员和商务伙伴等。在新增加联系人时,应提示用户选择要加入的队列,而对于曾经添加过后又删除的联系人则直接将其恢复到原先所在的队列。联系人的删除又分为阻止联系人和彻底删除两种情况。阻止联系人就是将其放入阻止队列,使该联系人无法看到用户的状态并且不能给用户发送即时消息;而彻底删除联系人,则会删除与该联系人有关的所有信息。

(4)即时消息的收发模块

负责发送和接收即时消息的工作。当用户想同一个联系人发起会话时,首先同SBS服务器创建连接,将Cookie令牌交给它进行验证。验证通过后就可以调用Socket接口向SBS服务器发送信息,而从服务器收到的消息则在会话窗口中显示。

2 IM软件的实现步骤及关键技术

2.1 开发平台的选择

Linux操作系统因其开放源码、容易定制和扩展、多硬件平台支持和内置网络功能等优良特性,早已成为嵌入式应用开发的首选平台,因此本文使用定制的嵌入式Linux系统[1]。

另外本文选择了Qt-Embeded开发工具,它是由著名的Qt库开发商Trolltech针对嵌入式Linux系统推出的构建GUI和应用的C++开发包。Qt-Embeded的移植性较好,支持ARM、PowerPC、MIPS和Dragonball等多种CPU体系结构。同时又有QMake、QVFB、Qt Designer等众多强大开发支撑工具的支持,大大提高了Qt-Embeded系统的开发效率。Qt设计器(Qt Designer)是用来设计和实现用户界面并能够在多平台下运行的一种开发支撑工具,用以简化用户界面的设计。QVFB即虚拟帧缓冲技术,是用于在PC机上运行和测试嵌入式应用程序的工具。

.

2.2 IM开放源码的选择

从底层开始实现一个完整的MSN客户端软件需要一定的时间。为了缩短开发周期、节省开发成本,本文采用开源项目的方式,即在第三方MSN客户端软件的基础上进行修改,使之满足要求。这样做的另外原因是可以从这些开放源码的软件中进一步剖析出MSN的协议格式,即使MSN协议有了新的版本,只要这个软件仍然可用,它所使用的新的协议格式级仍对开发调整有重要的参考价值,可以据此重新调整软件而无须去通过逆向工程的方法对MSN协议进行分析。

支持MSN协议的IM客户端软件很多,必须选择适合于剪裁并且是基于Linux的开放源码系统,Gaim和Kmess都是不错的选择。其中Gaim是为Linux操作系统而设计的一种即时消息传递软件,它可以同时支持MSN、ICQ、AIM和Yohoo等多种客户端通信,但是它的软件结构比较复杂。Kmess也是基于Linux的开放源码系统,它只能支持MSN客户端,从开发者的角度而言,Kmess因其结构相对简单则更易于分析和改进。所以这里选择了Kmess作为MSN客户端软件的开发蓝本。

2.3 IM开放源码的修改

尽管Kmess是基于Linux平台的支持MSN客户端的即时消息传递软件,但并不是直接搬过来就能用,必须进行大量的修改工作。首先Kmess是基于KDE环境而开发的应用程序,在源代码中大量使用KDE库函数,而KDE库本身就有数百兆,受到原型机存储容量的限制,不可能在原型机上实现KDE环境;其次Kmess是一个功能完善的MSN客户端,其中包括许多增强功能如文件传送、多方聊天、语音聊天和视频聊天等,由于在目前的智能电话终端上暂不考虑实现这些功能,因此对源码的修改和剪裁是必不可少的。

针对上面的二个问题,对Kmess软件进行了较大的调整,主要保留了与MSN协议处理的相关的内容。具体调整如下:

(1)重新设计界面部分

由于Kmess中的用户界面是基于KDE环境,而原型机上采用的是Qt-Embeded,因此界面部分基本不能用,本文用Qt designer重新设计了登录窗口、主菜单、联系人窗口、会话窗口等,在这些界面中再调用Kmess的函数。

(2)KDE库函数的替换

将源代码中的基于KDE的库函数用Qt-Embeded提供的类函数来实现。由于Qt-Embeded对一些基本功能的实现都有很好的支持,所以找到它们的对应实现方法并不困难,惟一的例外是SSL的实现。

(3)剪裁部分源代码

分析Kmess的源码结构,删除不需要实现的功能部分,构建自己需要的体系结构。由于Kmess的模块之间有着紧密联系,因此并不是简单剔除实现这些增强功能的类函数就可以完成的。首先必须理清Kmess的层次结构及模块与模块之间的相互关系,只有在对整体结构有了清晰的了解之后才能够着手剪裁工作。

2.4 IM网络安全的实现

在登录过程中,用户要向NS服务器发送账号和密码来通过验证,只有合法的注册用户才能使用即时消息收发功能,因此对用户账号和密码必须进行加密。MSN客户端采用SSL(Secure Socket Layer)技术来保证账号信息的安全性。SSL即安全套接层,是介于应用层和TCP层之间的一个薄层。使用SSL协议的双方可以在一个不安全的公共信道上协商加密算法和加密密钥,并使用协商好的算法和密钥将应用层的数据加密成密文,然后在网络上传输。这样即使第三方截获了该密文,由于没有解密算法和密钥,也无法解密出明文数据,从而确保网络数据的安全性。

2.5 应用程序的移植

由于在原型机上开发和调试应用程序有相当大的困难,因此需要在PC上先进行仿真开发,然后再下载到原型机上。

(1)PC机与原型机的通信

PC机通过串口与原型机交换数据。在Linux中,串口的设备文件一般为/dev/ttyS0和/dev/ttyS1,分别表示串口1和串口2。首先用open命令打开串口,然后根据具体的应用来配置串口,设置波特率、校验方法、数据位、停止位和流控制等参数。设置完成后,就可以通过MINICOM串口通信程序,完成PC与原型机之间应用程序的下载和调试结果的上传等操作。

(2)应用程序的交叉编译

整个开发过程分为二个阶段:第一阶段,开发者在PC环境下使用Qt-Embeded进行应用程序开发,通过gcc编译器生成在PC上可以执行的目标代码,然后使用QVFB模拟原型机的运行效果,经过不断的调整直到满足用户的要求;第二阶段,根据CPU体系结构的不同,对PC上实现的应用程序作相应的调整后,再使用arm-Linux-gcc将程序重新交叉编译为在原型机上可执行的代码,最后将该代码下载到原型机的Flash中,从而完成原型机上的即时消息软件的开发。由于在PC机上已经用QVFB模拟过软件的运行情况,因此下载到原型机上后能基本上确保软件的正确性,从而大大提高了开发效率。

(3)OpenSSL库的交叉编译

OpenSSL库是作为目标代码被调用的,因此还需要进行OpenSSL库的移植工作。首先需在PC上对OpenSSL库进行交叉编译,生成目标平台上使用的二进制文件,然后将其载入目标平台。为了使OpenSSL库能够在ARM嵌入式平台上运行,首先要为OpenSSL的Makefile文件加入一个名为“opensslForARM.Makefile.patch”的补丁,再用arm-Linux-gcc编译生成可执行代码。

(4)OpenSSL库的注册

交叉编译OpenSSL成功后,使用MINICOM将其下载到原型机上,但此时仍然无法正常使用OpenSSL库函数。这是因为在Linux中只有经过注册的库,才能成为共享动态链接库。Linux下的共享库采用了类似于高速缓存的机制,将共享库所在的目录信息首先保存在/etc/ld.so.cache中。应用程序需要连接时先在这个文件里查找,若找不到再去ld.so.conf的路径里查找。动态链接库的管理命令ldconfig会在默认目录(/lib和/usr/lib)和动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库,进而创建出动态装入程序(ld.so)所需的连接和缓存文件,并将已排序的动态链接库名称列表存放在默认文件/etc/ld.so.cache中。用户首先将ldconfig下载到原型机上,然后在ld.so.conf文件中指定OpenSSL的路径,运行ldconfig命令即可自动完成整个注册过程。

3 结束语

在智能电话终端上构造MSN客户端软件,首先要考虑目标平台的特点及资源的有限性,选择实现其中最基本和最常用的功能;然后借助于已有的开放源码成果,选择一个合适的开源项目,并对其界面部分和相关库函数进行调整和调试,使之满足目标平台的运行要求;最后通过交叉编译的方法生成目标平台上的可执行代码并下载到智能电话终端上。充分利用现有的开源成果不仅可以大大简化对MSN专用协议的分析和实现过程,而且也进一步降低了软件的开发成本,缩短了软件的开发周期,使智能电话终端具有更好的性价比。

热门词条
ncv7708bmc14051bcpm-7N9KLTPA245SokxPS2701A-1-VPH300S48-24q32P8255A


瑞达币购买
桂山秋竹_唐年桂2023年
桂北云雾图_唐年桂202

  • 扩展阅读
  • 上一个文章:
  • 【返回网站首页】 【返回无线】
  • 下一个文章:
  • 【字体: 】【】【发表评论】【加入收藏】【告诉好友】【打印此文
    文章 软件 电影 商品

    相关文章

    本站公告

    • 扫一扫,打赏给我们,谢谢!

      本站2016年12月16日起取消ruida.org.cn域名,该域名正式作废,该域名发布任何信息与本站无关。


      启用ruida.orghy928.net域名;

      瑞达网,瑞达科技网宣

    附页内镶内容
    健康养生 商场新品 股市K线、指标知识
     六种药酒配制法[11月7日]
     加减玉容散_祛风活络,润泽皮[4月30日]
     玉容散·主治妇女面无光彩,[4月23日]
     玉容散·功效祛风止痒,化斑[4月23日]
     玉容散·功效祛风利湿,消斑[4月23日]
     玉容散·功效馨香,去垢腻,主[4月23日]
     玉容散·主治黧黑皯黯(又名黧[4月23日]
     玉容散·功效白面嫩肌,主治黧[4月23日]
     玉容散·主治面上诸(黑干)(黑[4月23日]
     玉容散·主治润颜色[4月23日]
     瑞达币购买
     桂山秋竹_唐年桂2023年新作品
     桂北云雾图_唐年桂2023年新作品
     广西2019年《高考指南》+《招生计
     金士科前置过滤器
     金牛前置过滤器
     USB口24系列编程器第二版含USB延
     液晶电视、液晶显示器图纸、维修
     彩电、显示器、DVD、EVD打印机等
     高清CRT彩电、显示器图纸刻录 4G
     [理财]各种短视频赚钱方法
     [会员]专业交易实战控制系统
     [理财]1分2分5分硬币回收价格表(20250123)
     [理财]1分2分5分硬币回收价格表(20230928)
     [理财]1分2分5分硬币回收价格表(20230624)
     [理财]2022 年新版1分2分5分硬币回收价格表…
     [理财]微信收款码如何开通商业版收信用卡费…
     [指标]R平方_基金指标
     [指标]标准差_基金指标
     [指标]平均回报_基金指标
    装修案例 网站建设 电器维修
     一般水电安装几个常用尺寸[1月29日]
     三相电表接法及度数的正确读…[5月8日]
     万能通用卧室房门锁更换步骤…[2月22日]
     乳胶漆的八大施工步骤及涂刷…[2月14日]
     旧墙翻新步骤及注意事项[2月14日]
     屋面防水施工工艺流程及注意…[1月16日]
     专利产品“防污吸气帽”新产…[1月8日]
     鲁班尺吉数对照表高清图片查…[10月29日]
     砂浆胶作用与危害[9月21日]
     4种处理水泥地面起砂方法[9月21日]
     网页html点击切换显示内容完[11月7日]
     动易SiteWeaver6.6网站管理系[7月31日]
     中国阴历农历JS支持 HTML网页[2月26日]
     java script error 容错处理[2月15日]
     几款还不错的网页特效显示日[2月14日]
     图片可以调大小的代码[12月14日]
     动易SW6.8网站系统改自适应支[11月20日]
     网站建设_套餐服务[12月4日]
     网站建设-费用明细[12月4日]
     不显示出来的代码[12月3日]
     联想 小新Air 14 2019笔记本…[6月15日]
     滚筒洗衣机脱水声音大原因及…[4月17日]
     智能电视不能开机强制恢复出…[1月16日]
     各大品牌智能电视机恢复出厂…[1月16日]
     洗衣机自己排水或不存水漏水…[6月15日]
     海尔冰箱出现-03还滴滴报警[5月29日]
     TCL电视通用教程安装教程[2月2日]
     TCL L43V7300A-3D液晶彩电出…[2月2日]
     先锋液晶电视LED-32B550无光…[1月17日]
     智能电视主板的应用与维修(…[1月11日]
    电器资料 下载 读书
     手机恢复出厂设置具体操作方…[3月29日]
     三个代码让电脑提速畅通秘籍[3月13日]
     视得安750D6对讲门铃工作原理…[9月13日]
     什么是量子芯片和光子芯片[5月14日]
     沃尔沃S90汽车遥控钥匙失灵的…[1月19日]
     LED显示屏瑞合信PLus单双色全…[12月22日]
     Windows 照片查看器无法显示…[8月6日]
     已经设置IE主页,但是打开还…[7月6日]
     如何调整空压机压力?空压机…[6月8日]
     剪映-视频编辑软件手机版使用…[5月28日]
     [书籍]幼学琼林全文
     [书籍]滕王阁序_原文_注释译文_白
     [书籍]《天工开物》明代宋应星初
     [电影]《抓娃娃》高清电影
     [联想]Lenovo S540-14API Compl 
     [书籍]《墨子》原文注释译文
     [LED条屏]瑞合信单双色/全彩控制系统
     [LED条屏]LED显示屏瑞合信手机APP6.
     [书籍]全本新注聊斋志异
     [书籍]广西2023年高考指南 招生计
     黄历干支年号公元皇帝对照年[4月17日]
     广西高考2024~2022年历史类([6月25日]
     花木[4月16日]
     鸟兽[4月16日]
     释道鬼神[4月16日]
     讼狱[4月16日]
     技艺[4月16日]
     制作[4月16日]
     科第[4月16日]
     文事[4月16日]
    珠宝玉器 在线电视台
     鸡血石与鸡血玉有什么区别[6月12日]
     鸡血玉[6月12日]
     鸡血石 (bloodstone)[6月12日]
     什么是莫桑石(Moissanite)[6月12日]
     可以戴钻石洗澡吗[1月22日]
     钻石如何保养才好呢?[1月22日]
     PT容易花的问题和钻戒保养问…[1月22日]
     切工 钻石的雕刻艺术[1月22日]
     如何保养好钻戒[1月22日]
     钻戒保养方法[1月22日]
     中央体育台
     中央新闻台
     宁夏卫视
     湖北卫视
     西藏卫视
     辽宁卫视
     河北卫视
     北京卫视
     政法频道
     农民频道
     湖南经视
     湖 南 台
     河南频道
     湖南卫视
     兵团卫视
     江苏卫视
     旅游卫视
     湖南都市
     七彩戏剧
     动漫秀场
     游戏风云
     法制天地
     魅力音乐
     新 娱 乐
     南 方 TV
     浙江卫视
     齐鲁频道
     山西影视
     东南卫视
     上海卫视
     贵州电视台
     重庆电视台
     山东卫视
     哪吒之魔童闹海《哪吒2》在线
     《抓娃娃》在线电影
     流浪地球2剧情介绍
     《万里归途》完整版
     《阿凡达2:水之道》耗资3.1
     2021港剧《梅艳芳》5集全.HD
     误杀2 -电影-完整版视频在线
     亲爱的/亲爱的小孩/打拐/家之
     《第一炉香》-电影-完整版视
     《扬名立万》-电影-完整版视
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论

    | 服务声明 | 充值中心| 华安五金电器 | 收费标准| 论坛| 留言| 实用查询| 会员中心| 下载帮助| 设为首页|

    技术支持:瑞达科技 即时交谈QQ:237013889 QQ群:13810759 E-Mail:237013889@qq.com
    非盈利网站,如有侵权,请来信来电告知,第一时间处理,谢谢!
    桂ICP备17008104号 华玉生活网网站统计
    tj