基于 Qt的无线即时通信系统的设计

2014-08-07 13:21童英华
微型电脑应用 2014年3期
关键词:点对点文件夹线程

马 青,童英华

基于 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

猜你喜欢
点对点文件夹线程
基于C#线程实验探究
“点对点”帮2万名农民工返岗
基于国产化环境的线程池模型研究与实现
OptiX155622H设备点对点以太网透传业务故障分析
摸清超标源头 大文件夹这样处理
调动右键 解决文件夹管理三大难题
浅谈linux多线程协作
宽带电力线载波点对点通信性能测试平台设计
挂在墙上的文件夹
便携式点对点可见光通信终端的实验研究