书合文秘网 - 设为首页 - 加入收藏
当前位置 首页 > 范文大全 > 教案设计 >

基于局域网的手机即时通讯聊天软件的设计与实现

作者: 浏览数: 关键词: 即时通讯 局域网 聊天软件 设计 手机

摘 要:手机即时通讯聊天软件主要用于连接在同一个局域网的安卓手机进行语音文字聊天、视频聊天。软件基于安卓2.3开发,JDK1.6以上,采用C/S架构、P2P以及TCP/UDP通讯协议。手机终端连接在同一个局域网下,其中一个手机充当客户端,另一个手机充当服务器建立Socket连接,可用于手机之间的视频聊天,对于文字和语音聊天则采用点对点的通讯方式。

关键词:即时通讯;WiFi;C/S;TCP/UDP;P2P

中图分类号:TN915.02 文献标识码:A 文章编号:2095-1302(2016)02-00-02

0 引 言

随着手机终端的普及和互联网的发展,即时通讯软件因其即时性、便利性在日常生活中占据着重要地位。局域网内,因为不会产生流量资费,而且其本身的网络条件也适合文件传输、音视频传输等大量数据的文件传输,因而可成为人们日常通讯中的重要途径。并且可拓展到广域网中,让更多的人受益。

1 软件系统整体结构设计

根据手机用户在局域网内通过手机等无线终端进行即时通讯的需求,系统对即时通讯的常用功能进行实现,包括用户个人信息设置,添加、删除、修改、分组等。

由于在局域网内,用户对文件传输和语音等即时通讯需求更大,在无线局域网的网络环境下,带宽、传输速度和效率更高,更适合用来进行文件传输和语音的实时传输。

根据系统的不同功能,将系统分成两大模块:文字语音聊天模块和视频聊天模块。文字语音聊天模块采用UDP协议,视频聊天模块采用TCP协议,保证视频图像不会出现失帧的现象。图1所示是该系统的结构设计图。

2 系统功能模块设计

系统功能的设计,也就是即时通讯软件即客户端和服务端的程序设计,在局域网下,分别对客户端和服务器端进行设计。

2.1 服务器端模块设计

服务器的功能模块主要负责建立监听、等待接收客户端的链接请求、接收并建立新线程以响应客户端的请求。同时根据请求类型决定是否需要访问数据库和对数据库进行操作。服务器端工作流程:服务器启动后,建立一个基于TCP的监听进程,用于监听客户端发送过来的各种请求。在接收到客户端的连接请求信息时,服务器会响应连接,同时服务器会建立一个新的线程,负责处理客户端的各种请求信息。服务器工作流程如图2所示。

2.2 客户端模块设计

客户端的主要功能是与服务器端进行通讯,以及对数据库进行查询、删除、修改。 客户端和服务器端通讯时创建三个线程:一个线程负责信息的发送,一个线程负责信息的接收,一个线程负责心跳信息的发送。其通讯流程图如图3所示。

客户端采用MVC软件开发结构,采用Android的XML文件对软件界面进行描述。

(1)视图层。主要是Android的layout中的XML文件进行定义,该XML文件用于定义并描述用户界面,负责软件界面的显示;

(2)控制层。Android的activity活动类通过Android的activity进行逻辑处理,在activity里可以设置页面事件的监听响应,在onCreate()方法里对主要逻辑进行处理;

(3)model层。主要是关于服务器和客户端进行连接并对数据库进行处理,对本地SQLite数据库进行操作,把通讯数据转化成数据库的相关SQL存入数据库,并封装一些对数据库的查询访问,存储个人信息及聊天信息。

文字语音聊天模块采用点对点通信,使用UDP协议作为文字语音信息的实时传输协议。UDP协议占用资源更少,效率更高,但是UDP协议是面向无连接的,所以传输质量无法保证。文字语音聊天流程图如图4所示。

视频聊天模块采用TCP协议,TCP是一种面向连接的、可靠的传输层协议,通过安卓手机自带的前置摄像头进行图像采集,采集的原始图像数据转换为JPG格式,转化为数据流发送给对方,并对数据进行还原,重绘成一帧一帧的图像,然后显示出来。其视频聊天流程图如图5所示。

图5 视频聊天流程图

2.3 客户端数据库设计

根据用户需求,客户端需要对一些数据进行本地存储,本软件借助Android内置的SQLite数据库作为客户端的数据库。SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,占用资源很低,能够支持Windows/Linux/Unix等操作系统,可以和很多程序语言结合。客户端数据库主要存储用户个人信息(见表1所列),图像信息以及聊天信息如表2所列。

3 结 语

本文主要介绍了基于局域网的手机即时通讯软件的设计与实现。软件采用TCP和UDP协议作为该软件的通讯协议,采用Android手机充当客户端和服务器端,数据库使用Android自带的SQLite数据库,软件采用C/S软件架构,并使用点对点通讯模型来实现聊天功能。总体来说,本文主要完成了以下部分的工作:

(1)研究本软件的相关背景并介绍,对软件进行了设计和实现;

(2)介绍了TCP/UDP协议簇、多线程编程;

(3)结合局域网通信的条件,设计出一个C/S和点对点结合的通信方式;

(4)对软件的客户端和服务器端进行了设计和实现。

本文虽然设计实现了即时通讯功能,但对于视频的传输简化了设计,而且对于视频的实时传输,未采用专业的流媒体服务器,以及在通讯加密方面还可以加强及优化。

在当今的互联网时代,本软件的应用前景非常广阔,可以在本软件设计实现的基础上,对软件的各个模块进行优化。可以将本软件应用场景从局域网拓展到覆盖广阔的手机移动网络中,同时可以在本软件中加入一些其他功能,例如浏览器功能,手机短信提醒等。

参考文献

[1]朱和平.即时通讯研究综述[J].现代计算机(专业版),2006(12):55-58.

[2]熊刚.基于Android的智能手机的设计与实现[D].武汉:武汉理工大学,2010.

[3]罗伟.基于Android平台的即时通讯系统的研究与实现[D].长沙:湖南师范大学,2009.

[4]吕东,刘小河.基于Android的实时视频通信研究与实现[J].现代电子技术,2014,37(1):46-49.

[5]童方圆,于强.基于Android的实时视频传输系统[J].计算机工程与设计,2012,33(12):4639-4642.

[6]周晶晶,舒翔,龙涛,等.Android实时流媒体监控的关键技术[J].微型机与应用,2013,32(19):4-7.

[7]王志国,候银涛,石荣刚.Android智能手机系统的文件实时监控技术[J].计算机安全,2009(12):42-44.

[8](美)W.Richard Stevens.TCP/IP Illustrated Volume 1:The protocols[M].北京:机械工业出版社,2009.

[9]杜辽.基于Android的即时通讯系统的设计与实现[D].济南:山东大学,2014.

[10]丁倩.基于Android平台局域网及时通讯软件的设计与实现[D].西安:西安电子科技大学,2013.

相关文章:

Top