qt局域网聊天系统毕业论文Word文档格式.doc

上传人:b****1 文档编号:13174481 上传时间:2022-10-07 格式:DOC 页数:34 大小:438KB
下载 相关 举报
qt局域网聊天系统毕业论文Word文档格式.doc_第1页
第1页 / 共34页
qt局域网聊天系统毕业论文Word文档格式.doc_第2页
第2页 / 共34页
qt局域网聊天系统毕业论文Word文档格式.doc_第3页
第3页 / 共34页
qt局域网聊天系统毕业论文Word文档格式.doc_第4页
第4页 / 共34页
qt局域网聊天系统毕业论文Word文档格式.doc_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

qt局域网聊天系统毕业论文Word文档格式.doc

《qt局域网聊天系统毕业论文Word文档格式.doc》由会员分享,可在线阅读,更多相关《qt局域网聊天系统毕业论文Word文档格式.doc(34页珍藏版)》请在冰豆网上搜索。

qt局域网聊天系统毕业论文Word文档格式.doc

目录

中文摘要

英文摘要

目录

引言

第一章Linux和QT的简介

第二章软件需求分析

第三章网络聊天系统的概要设计

第四章网络聊天系统的详细设计

第五章系统测试

第六章系统运行和维护

第七章结语

第八章参考文献

第九章附录

第十章后记

引言

随着嵌入式产品的高速发展,大多数嵌入式操作系统拥有网络和图形界面的工程。

利用源代码开发的Linux搭建的嵌入式操作系统,拥有Linux具有开源,完全免费,和其强大的网络功能,越来越多的嵌入式产品都采用Linux操作系统。

它能提供全功能的桌面计算,并且支持大多数嵌入式操作系统上使用的芯片,包括ARM,PowerPC和MIPS等。

在嵌入式上使用轻量级,高性能,高可靠,可配置的GUI系统成为可行的解决方案。

虽然市场上出现了许多优秀的图形界面可发软件,但是随着计算机技术的高速发展,当新硬件,新技术出现时,计算机的体系结构,,指令系统,和操作系统都可能发生相应的变化,这势必会导致一部分应用软件在新的平台上无法运行,可移植性不行,但是QT基于跨平台的特点,它能解决这个问题,极大地提高了应用程序的可移植性。

因此,利用Linux做基于Qt的嵌入式聊天系统的开发是一个非常有意义的课题,具有非常重要的研究和商业价值。

第一章Linux和QT的简介

1.1Linux的主要特性

(1)符合POSIX1003.1标准

POSIX1003.1标准定义了一个最小的Unix操作系统接口,任何操作系统只有符合这一标准才能运行Unix程序。

(2)支持多用户访问和多任务编程

Linux是一个多用户操作系统,它允许多个用户同时访问系统而不会造成用户之间的干扰。

另外,LInux还支持多用户编程,一个用户可以创建多个进程,并使它们协同工作以完成用户的需求。

(3)采用页式存储管理

页式管理使Linux能更有效的利用物理存储空间,页面的换入换出为用户提供更大的存储空间。

(4)支持动态链接

用户的程序的执行往往离不开标准库的支持,多数操作系统一般采用静态链接方式--即在编译阶段就把用户程序和标准库链接好,这样当用多个进程运行时,可能会造成库代码在内存中有多个副本而浪费空间。

而Linux支持动态链接方式--即用户程序在运行阶段才把库链接进来,这样就能保证库代码在内存中时唯一的,可以节省内存空间。

(5)支持多文件系统

Linux支持多文件系统,目前支持的文件系统有:

EXT2,EXT3,XIAFS,ISOF,MSDOS,UMSDOS,PROC,NFS,SYSV,MINIX,SMB,UFS,NCP,VFAT等。

Linux最常用的文件系统是EXT2,它的文件名程度可达255个字节。

(6)支持TCP/IP,SLIP和PPP协议

在Linux中用户可以使用所有的网络服务,如NFS,telnet等。

SLIP和PPP能支持串行线上的TCP/IP协议的使用,这意味着用户可用一个高速的调制解调器(Modem)通过电话线连入Internet网中。

1.2QT的主要特性

QT是一个跨平台的C++GUI应用构架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组建编程等特点,更引人注目的是目前Linux上最流行的KDE桌面环境就是建立在QT库的基础上的。

QT支持一下平台:

MS/WINDOWS-95、98、NT和2000;

UNIX/X11-Linux、SunSolaris、HP-UX、DigitalUnix、IBMAIX、SGIIRIX;

EMBEDDED-支持framebuffer的Linux平台.

信号和槽机制是QT编程的核心机制。

信号和槽是一种高级接口,应用于对象之间的通信,它是QT的核心机制也是QT区别于其它工具包的重要地方。

Qt具有跨桌面和嵌入式操作系统的移植性。

使用Qt只需一次性开发应用程序,就可跨不同桌面和嵌入式操作系统进行部署,而无须重新编写源代码。

具有跨平台IDE 

的集成开发工具:

QtCreator是专为满足Qt开发人员需求而量身定制的跨平台集成开发环境(IDE)。

QtCreator可在Windows、Linux/X11和MacOSX桌面操作系统上运行,供开发人员针对多个桌面和移动设备平台创建应用程序。

第二章软件需求分析

2.1系统客户要求

需求分析是软件开发中的一个重要步骤,它的基本任务就是要准确地分析出系统应用者的需要,以及系统目标必须具备哪些工程,这些工程必须准确的体现出用户的要求。

根据网络聊天系统的特点,它应该能实现即时通讯的功能。

客户端和服务器应该具有不同的功能,其中服务器的主要工程就是管理客户端的登陆信息,包括账号、密码、在线状况、昵称等,而客户端的主要功能就是实现能够连接服务器,注册用户,登陆服务器,并且能实现客户端之间的通信。

并随时更新用户的信息。

2.2网络聊天系统架构分析简介

网络聊天系统分为客户端和服务器两部分,其中服务器运行在PC机上,客户端可运行在开发板上,亦可运行在PC机上。

首先服务器开始监听,然后客户端通过注册,登陆服务器,然后客户端之间即可进行通信。

2.3网络聊天系统界面设计

(1)服务器界面如图1所示;

服务器提供了所有注册了的用户的用户名,密码,昵称和登录状态信息,方便对用户信息进行管理。

(2)客户端登录模块界面显示如图2所示;

客户端登录模块类似于QQ的登陆界面,只是它多了连接服务器的IP地址和端口号。

(3)客户端注册模块界面显示如图3所示;

客户端注册模块可以让新用户注册信息。

(4)客户端好友列表界面显示如图4所示;

好友列表模块显示用户好友和自己的用户名和登陆状态。

(5)客户端聊天界面如图5所示;

客户端聊天模块可以让用户与其他用户通信。

图1服务器主界面

图2客户端登录模块主界面

图3注册模块界面

图4好友列表界面

图5聊天界面

2.4网络聊天系统架构图

2.4.1服务器架构图

服务器结构图如图6所示:

图6服务器结构图

2.4.2客户端架构图

客户端结构图如图7所示:

图7客户端结构图

2.5系统开发目标

(1)实现好友登陆,当好友登陆或离开时,服务器能即时通知所有的在线用户。

(2)收发信息同步,当一个用户想其他的好友发送消息是,相应的用户能即时接受消息。

2.6开发环境

软件环境:

Ubuntu10.11

硬件环境:

1GB以上的CPU,500MB以上的内存

第3章网络聊天系统的概要设计

根据调查和研究,得到系统所要处理的数据流程如图8所示:

图8网络聊天系统数据流程图

3.1服务器的具体实现

(1)解决中文乱码的关键代码:

QTextCodec:

:

setCodecForCStrings(QTextCodec:

codecForName("

utf-8"

));

setCodecForLocale(QTextCodec:

setCodecForTr(QTextCodec:

其头文件为#include<

QTextCodec>

.

(2)使用数据库保持用户信息,需要用到如下库:

#include<

QSqlDatabase>

QSqlQuery>

其中QSqlDatabase库代表一个数据库的连接,QSqlQuery提供了执行Sql命令的方法。

使用方式如下:

QSqlQueryquery;

Query.exec(“DROPTABLEscooter”);

数据库的操作还涉及到库QSqlTableModle,该类为单一的数据库表提供了可编辑的模型。

使用方法如下:

Model=newQSqlTableModle(this);

Modle->

settable(“scooter”);

Model->

setSort(Scooter_Name,Qt:

AscendingOrder);

select();

(3)打开和关闭监听的关键技术:

当要用QString类型的变量保持IP地址和端口号信息时,可使用方法trimmed(),它可以去除最前面和最后面多输入的空格。

可以使用QMessageBox类来给出提示信息,例如:

QMessageBox:

critical(NULL,

tr(“Warnning”),tr(“error!

”));

(4)使用Udp协议来通信使用方法如下:

添加头文件#include<

QUdpSocket>

Udpsocket=newQUdpSocket(this);

If(!

udpsocket->

bind(QHostAddress(ip),(quint16)port+1)){

QMessageBox:

critical(NULL,”Warnning”,”error!

”);

}

Connect(udpsocket,SIGNAL(readyRead()),this,SLOT(recvMsg()));

3.2客户端的具体实现

客户端主要有4个大模块界面:

登陆模块,注册模块,好友列表模块,通信模块。

下面对这4个模块分别进行概要的分析。

3.2.1登陆模块

可以使用resize方法来设置窗口的大小,从而实现显示部分窗口的功能,具体使用如下:

this->

resize(366,231);

在登陆模块还有如下关键代码:

Socket->

abort();

connectToHost(QHostAddress(ip),(quint16)port.toInt());

Connect(socket,SIGNAL(readyRead()),this,SLOT(recvmsg()));

其中abort()方法用来关闭套接字

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1