APP下载

基于linux的可视化聊天工具设计与实现

2016-03-13邵阳学院信息工程系余建坤

电子世界 2016年1期
关键词:局域网

邵阳学院信息工程系 杨 晟 阳 泳 余建坤



基于linux的可视化聊天工具设计与实现

邵阳学院信息工程系杨晟阳泳余建坤

【摘要】随着计算机普及与发展,互联网技术、网络应用工具也在不断的升级与更新,现在人们的生活、工作已经和互联网紧密的联系在一起。局域网用于企业、学校内部之间的信息发布、通信、数据共享等,我们常用的腾讯QQ、微信、微博等都是适合Internet工具,而局域网内交流工具-飞Q,随着近几年局域网的应用市场不断增大,加强对局域网通信工具的研究具备一定的发展前景。本文针对局域网通信工具的研究与实现技术进行深入分析,主要Qt create工具设计一款简单的局域网通信工具为主要案例进行详细的论述,分析局域网通信软件的需求分析、通信系统设计过程分析以及不同平台的跨平台测试,深入分析局域网聊天工具的设计与实现。

【关键词】Linux系统;Qt create;局域网;linux网络编程

随着计算机网络推广与发展,人们通过网络进行交流显得越来越重要,与之对应是诞生了一系列的通信软件,例如现状的QQ、微信、微博等等工具,但是这些软件主要是针对Windows系统开发,而linux中的网络聊天工具相对较少。Linux是unix操作系统的克隆,系统代码开源,遵循GPL声明,用户可以根据自己的开发需求对linux进行裁剪,是一个自由的操作系统,深受广大IT技术人员的喜爱,与Windows、Mac等操作系统存在的本质的区别。Linux系统可以根据用户需求进行系统定制,其中包括多任务、虚拟内存、TCP/IP驱动程序,共享库和多用户支持等,所以本文软件平台采用linux系统平台,利用现有的网络编程知识,设计和开发局域网里基于Linux的局域网通信工具。

1 系统设计与需求分析

通过对腾讯QQ、微信等通信工具分析,作为一款系统聊天工具的需要具备以下几点:

(1)实用性:通信工具的最重要的就是信息传输、交流,而不是增加一系列的其他次要功能。

(2)可靠性:用户的信息、聊天的内容都是需要做好保密,所以保证传输稳定性、安全新。

(3)简便性:通信的工具的使用人群不是专业技术员,所以工具操作要简便。

(4)可扩展性:采用开放的标准和接口,便于系统的规模、功能扩展。

通过上述四点的目标分析,让我们了解系统设计的基本要求,为此我对此工具的聊天功能有以下的初步设计架构:

(1)功能:用户向对话框内输入自己的信息内容,点击发送按钮,后台程序将用户信息内容发送给指定用户。

(2)输入:输入需要发送的消息内容。

(3)中间处理:用户在对话框输入自己的需要发出的信息,点击发送之后,程序将用户信息打包成数据包,通过TCP/IP协议发送到指定的IP地址中。而对方用户在线接收消息之后,在己方的消息框内,发出的消息便成为了历史消息,记录在消息记录中,消息记录方式为:“时间+用户名+内容****”。

(4)输出:在对话框的左侧存在历史记录选项,点击可以查询信息记录。上述为用户在线聊天的基本处理流程,聊天内容仅限于文字,而图片与语言需要进行额外的扩展,在此并不实现。

而针对工具的文件传输功能,与语言功能实现类似,但是在传输的文件需要将文件根据TCP/IP协议将文件转换成为数据流包,而对方用户接受之后,在进行相应的数据流包还原。

(1)功能:用户的打开对话框,点击发送文件选项,选择相应的文件,进行传输。

(2)输入:选择需要传输的文件。

(3)中间处理:单击发送文件按钮,选择需要传输的文件,根据TCP/IP协议将传输的文件转换成数据流包,并在对方对话框内弹出”是否接受文件选择框”,用户可以选择接收或者不接收,用户接收后,数据流包又转换成为文件包,保存着用户存放的目录下。

(4)输出:接收端接收文件并保存。

(5)上述为文件传输的基本处理流程,能够传输所需要的文件。

用户通过自身的账号(IP地址)登录软件,软件登录之后自动检索局域网内已经上线的用户(IP地址),用户可以点击相应的用户对话框,在发送栏内输入相应的信息,或者选择相应的文件传输,而对方用户的对话框内会提示消息或者需要接收的文件。

2 系统实现

通过使用Qt creator编辑工具的界面,使用网络套接字socket完成用户之间的信息传递。由于此工具为linux平台工具,网络为局域网聊天系统,因此取消了服务器端,软件通过自动检测局域网内的IP地址来查询用户机是否在线,用户可以和在线用户进行信息交流。例如用户登录软件之后,系统将会自动处理用户1IP地址使用的消息,并且其他的IP地址发送数据包,而其他用户接受用户1发送的数据包,客户端列表刷新,显示用户1已经上线。

通过上述系统的处理需要注意以下几点:

(1)数据包的管理:该模块中管理用户的IP地址,主机名等信息,用户使用登录客户端之后,需要向其他在线用户发送数据包,使得其他用户的列表中显示用户在线。

(2)逻辑通信:逻辑通信模块是整个系统的核心,该模块主要包含广播登陆信息,发送接收数据,实现上下线及文本聊天的逻辑处理,用于用户之间的信息传递工具,需要处理好,否则将会影响整个系统的信息交流问题。

(3)文件传输:文件传输是采用tcp协议完成,其实现相对比较独立,在聊天窗口中调用其接口就可以实现该功能。

(4)界面设计:通过Qtdesign设计系统的界面,实现用户之间的聊天工具以及文件传输交流,在聊天窗口包含了输入框、显示框、文件传输按钮,加粗按钮、倾斜按钮、下划线按钮、选择颜色按钮等等,此外还有两个combox控件,用于选择字体和文字大小,其中单击文件传输按钮和选择颜色按钮都会弹出相应的对话框。而about按钮,记录了软件相关信息,相对于QQ的聊天界面而言,简便很多。

3 分析总结

针对该系统是基于Linux平台的开发,因此选用了QT作为开发工具,C++作为开发语言,当软件在linux中进行测试,可得基本功能已经实现。

综上所述,通过本次的基于linux的聊天工具设计,对于目前已所学习的东西进行应用一番,发现自身中的不足,需要进行再次深入的加强学习。而对于此聊天工具,已经能够初步实现局域网络中的用户聊天与文件传输,此外还可以进行功能扩展,例如使用服务器实现在Internet网中进行聊天,而聊天内容也可以增加语音和视频,还需要进行深入的研究。

参考文献

[1]李爱菊,宋冲亚.QT局域网聊天项目制作[J].现代建设,2012.

[2]薄晓蓉,张伟利.操作系统原理与实例分析[M].机械工业出版社,2005.

[3]谢晓芹.基于socket的网络编程[J].南昌大学学报,1997.

[4]马睿.基于QT的TCP网络编程研究与应用[J].福建电脑,2010(11):138.

杨晟(1993—),男,湖南株洲人,大学本科,现就读于邵阳学院信息工程系通信工程专业,研究方向:嵌入式系统。

阳泳(1994—),男,湖南邵阳人,瑶族,大学本科,现就读于邵阳学院信息工程系电子信息工程专业,研究方向:嵌入式系统。

余建坤(1966—),男,湖南冷水江人,硕士,副教授,研究方向:现电子设计理论。

通讯作者:

作者简介:

猜你喜欢

局域网
企业局域网运维管理中网络安全管理的重要性探析
轨道交通车-地通信无线局域网技术应用
基于VPN的机房局域网远程控制系统
基于虚拟局域网的收费系统网络构建
基于802.1Q协议的虚拟局域网技术研究与实现
计算机局域网组建及管理探讨
局域网性能的优化
基于局域网的高速公路隧道监控系统设计
家庭无线局域网的测试方法及应用
基于Java Web的钢管企业局域网信息共享平台