基于 Qt的无线即时通信系统的设计
2014-08-07童英华
马 青,童英华
基于 Qt的无线即时通信系统的设计
马 青,童英华
提出一种基于对等网络模型的的无线即时通信系统,该系统使用 S3C2410 为微处理器,在 Qt 4.5 for Embeded Linux开发平台上,提供了 ipmsg 协议的实现,支持局域网内部点对点的即时通信和文件传输,实现了与 PC 之间点对点的消息、文件/文件夹、图片的发送。
对等网络;S3C2410; ipmsg 协议;PC;即时通信
0 引言
数字化、信息化、智能化是世界发展的大趋势,对人们的生产生活将产生更为深刻的影响,并正在引发一场全方位的社会变革,即从工业社会向信息社会发展。同时伴随着物联网、云计算、信息物理融合系统等概念的提出,智能终端等嵌入式设备之间的数据交换将势必成为今后的研究热点[1]。
对等网络模型技术起源于局域网文件共享,是基于TCP/UDP Client/ Server 技术的一种设计模式思想。对等网络模型中,各个结点是对等的,彼此互为客户端/服务器,协同完成任务。[2]本系统基于统一通信的需求,设计了一款基于对等网络模型的的无线即时通信系统。一端运行于 PC,另一端运行于 ARM 平台,实现了点对点的消息、文件/文件夹、图片的发送。
1 系统总体设计
本设计提出并实现了一个基于 Qt for Embedded Linux 4.5.0 的无线即时通信系统。该系统使用 S3C2410 处理器作为硬件平台,基于 Qt 嵌入式 Linux 开源平台开发了 QMsg通讯软件。
系统总体结构图如图1和图2所示:
图1 系统总体框架
图2 QMsg 总体框图
2 系统硬件结构
本系统硬件设计包括个人计算机,以及采用 S3C2410为微处理器的内核的 ARM 硬件平台,操作系统采用 Linux操作系统的系统结构组成。
3 软件功能的实现
3.1 应用软件设计
3.1.1 图形前端程序设计与实现
本设计中 QMsg 软件分为图形前端和后台模块两部分组成,其中后台模块由纯 C 语言实现了 ipmsg 协议,然后通过 Qt对 ipmsg 协议进行封装,从而为用户提供良好的图形交互界面。
IPMessenger (软件名:QMsg)在 Qt 4.5 for Embeded Linux 开发平台上,提供了一个 ipmsg 协议的实现,支持局域网内部点对点的即时通信和文件传输。QMsg 支持文件及文件目录的传输,集服务端和客户端于一体,无须服务器支持,安全快捷以及小巧方便等优点,支持无线网络,可以实现消息、文件/文件夹、图片的发送,并可以设置发送的字体格式、颜色,同时可以记录会话内容。
在设计图形界面的时候,从用户使用的角度出发,操作方式符合用户的使用习惯。软件内部的设计,用面向对象的方法实现,建立类,利用类的属性和操作来完成数据的保存和各种功能实现。
3.1.2 QMsg 后台程序设计与实现
(1)ipmsg 协议实现概述
ipmsg 协议基于 P2P 模式,使用 TCP/UDP 协议提供收发消息及文件(文件夹),默认端口为 2425,消息的收发使用UDP 协议,文件(文件夹)的收发使用 TCP 协议。[3]ipmsg通过定义一种统一的命令字、数据结构、数据包以及处理流程,来实现对等的通信协议。其中命令字用于表示通信时的一些状态信息,以便于处理通信数据时的解析,数据结构用于存取通信数据,将通信数据按照一定的格式封装成待发送的数据包。
ipmsg 协议使用多线程编程技术,来实现程序的并发执行,以提高程序的效率。一个线程用来和用户交互,处理用户输入的命令;一个线程用来监控网络,从 udp 套接口接收udp 数据包;一个线程用来处理接收到的 udp 数据包;当发送文件/目录时也会生成一个线程,通过 tcp 套接口发送文件/文件夹;当接收文件时还会生成一个线程,通过 tcp 套接口接收文件/文件夹并存盘;一个线程用来实时更新用户列表。[4]
(2)ipmsg 程序流程图如图3 所示:
图3 主线程流程图
3.2 系统软件的设计
3.2.1PC 端嵌入式操作系统的选择及软件的配置
本系统 PC 端安装 fedora 作为操作系统,安装交叉编译器 arm-linux-gcc-3.4.6 及操作系统自带的 GCC 编译器,安装Linux 的 X11 下 Qt包,配置 Samba 、NFS 和 tftp 服务。为了能使嵌入式开发平台和 PC 机上的 Linux 操作系统进行无线通信,需要在运行程序之前设置好无线网络,主要工作是配置好无线网卡。[5]
3.2.2 嵌入式开发平台的配置
在嵌入式开发平台,需要安装QT包,并进行触摸屏和Qt的编译,同时需加载网卡驱动,并设置无线网络。
4 总结
本系统解决了在无线网络环境下,点对点的通信,能实现基本的聊天和文件传送的功能,但是还不够完善,如无法使用中文输入法,而只有英文输入,可以进行进一步的扩展。
[1]王猛,张为,刘艳艳.基于 ARM11 的嵌入式通信系统.[J]微型电脑应用.2012(6).
[2]林华基于 ARM 的嵌入式通信系统设计与实现.[J]电脑知识与技术.2007(14).
[3]马永杰,袁秋林,张燕.基于 Qt 的嵌入式 Linux 通讯簿程序设计[J]. 西北师范大学学报(自然科学版). 2009(03)
[4]任善全,吕强,钱培德,杨季文.一个基于 Qt/Embedded 的嵌入式 Linux 应用程序的实现[J]. 计算机应用与软件. 2006(02)
[5]曹庆年,赵博,孟开元.基于 ARM9 的嵌入式 Linux 网络通信系统设计与实现[J]. 西北大学学报(自然科学版). 20 09(01)
The Design of the Wireless Real-Time Communication System Based on Qt
Ma Qing,Tong Yinghua
(Qinghai University, Xining 810001, China)
This paper puts forward a kind of wireless real-time communication system based on peer-to-peer network model. The system uses S3C2410 microprocessor .In the Qt 4.5 for Embeded Linux development platform, it provides the realization of ipmsg protocol, supports internal point-to-point messaging and file transferring .It realizes to send point-to-point messaging, file/folder and pictures between the PC.
Peer-To-Peer Networks; S3C2410. Ipmsg Agreement; PC; Instant Messaging
TP311
A
1007-757X(2014)02-0041-02
2014.02.25)
马 青(1980-)女,青海省西宁市,青海大学,讲师,研究方向:计算机应用,西宁,810001童英华(1982-)女,青海省西宁市,青海师范大学,副教授,研究方向:物联网,西宁,810001