APP下载

基于QT的企业内部通讯

2017-10-22曲红伟姚思远

中国新通信 2017年18期

曲红伟+姚思远

【摘要】 本文设计的通讯系统在LINUX操作系统下建立,系统采用C/S结构,客户端与客户端通过局域网内使用Socket绑定地址来进行通信。使用QT4作为开发工具,C++作为编程语言来进行总体开发。采用多线程的处理方式来处理多对多的系统。不同的线程处理不同的任务。这样会大大优化资源的使用,整个系统完成以后可以进行多人聊天,收发文件,删除保存聊天内容。

【关键词】 Linux QT4 C/S Socket

一、前言

网络技术发展越来越迅速,但免费的通讯工具都不具备加密功能。这对于企业来说是很不安全的。在通讯里添加加密算法对企业来说是很有必要的。因此在linux平台下使用QT进行及时通讯的开发是非常有意义的。

二、系统设计

该系统的聊天消息采用的是UDP的传输方式。这种传输方式是一种不可靠,不需要连接的,不保证顺序接收的,不包含流控和堵塞控制的协议的。但是这种方式却能提供超高效的传输服务。文件的传输则选用了TCP的传输方式,TCP协议提供了需确定连接的,保证顺序传输的服务。在代码的编写上采用了SOCKET(套接字)的方法。

2.1 系统整体框架

局域网内即时通讯工具,程序既要作为客户端又要作为服务器端。可以简单的理解为P2P(端对端)。因为局域网内聊天可以看做是一個聊天室,每一个用户发送的消息都是面向全体的,所以消息的发送采用UDP的方式。但是文件的传输要求较高,要保证文件的完整性,这就不能采用UDP的方式而采用TCP的方式。该系统实现用户的登录,退出,发送消息,删除消息,保存聊天内容,文件的传输与接收。系统的整体架构如下图1所示。

2.2 用户操作系统

在局域网内每一个用户的IP地址都是不相同的,所以每一个IP可以看作是一个账户。当用户需要聊天时,系统会首先获取所有用户的账号信息,这是每个用户在登录运行时,通过发送UDP广播来实现的。与此同时会告知所有的用户。当用户离线时也会发送UDP广播告知所有的用户。

2.3 聊天界面设计

用户的登录,离开以及消息的传输都是通过UDP广播的方式来处理的。聊天界面可以对字体进行改变大小,加粗,改变颜色等相关处理。

三、信息处理与传输

3.1信息处理

企业内部及时通讯软件的数据的接收以及数据的处理都是通过用户列表窗口类来完成的。数据处理函数主要是通过信息的switch语句来进行匹配不同的数据类型,然后就可以响应并调用相应的处理函数就可以了。群聊消息的处理过程:当switch语句判断出消息的类型是聊天消息后,首先会根据约定的格式来读消息的内容,然后就会调用群聊消息的函数来处理消息,并在聊天窗口中来调用chat类中的getXessage()函数来显示接收的消息。

3.1.1消息保存

我们有些时候会需要消息进行保存,聊天内容在界面没有被删除的时候,如果我们需要对聊天内容进行保存的时候。需要点击界面上的消息保存图标,这个图标对应的类会在界面的窗口构造出来的构造函数中作为一个参数传入。然后就会发出一个信号会有与之对应的槽函数来响应,之后会弹出消息的保存界面来对消息进行保存。

3.1.2消息删除

当我们需呀删除信息时候,通过界面上的链接到一个槽函数的图标,通过相应的类来对于当前界面聊天窗口内的消息进行删除。点击删除按钮是会首先对聊天界面是否有内容进行判断,有的话就执行相应的操作,没有为空的话就什么也不执行。

3.2文件传输

当我们需要传输文件时,需要点击文件传输按钮,当点击后就会向程序中的其它的类发送一个信号,然后接下来的工作就交给相应的槽函数来进行处理,然后就由用户列表中存在的相应的类对应的槽函数来完成文件服务器的使用工作。这样的话文件的传输就能完成了。但是这个程序中每一次只能进行一个的文件传输,下一个文件需要传输的话必须等待上一个文件传输结束。

四、总结

本次设计成果主要面向的对象是对此有使用倾向的企业,政府机关以及学校等内部用来进行信息交流的。再者就是企业内部及时通讯软件使用的是局域网,这样的话就可以将需要使用的计算机的IP加入到局域网中。再加上P2P技术不需要额外的服务器,这样的话就会大大提高信息的安全性,使得交流的信息不会被泄露给第三方。

参 考 文 献

[1]…张虹.软件工程与软件开发工具.清华大学出版社.2009(1)55-75.

[2]…黑新宏;基于Linux的嵌入式图形用户界面支持系统研究[D].西安理工大学.2003.