当前位置:文档之家› QQ课程设计

QQ课程设计

QQ聊天课程设计《软件综合开发案例教程》课程设计报告课程设计题目我们要做的就是QQ聊天界面,基本功能和QQ类似。

首先,系统分为两大部分,第一部分是客户端,是用户使用的部分,第二部分就是服务器,所有的客户端都是通过服务器来进行用户身份验证及聊天转接的。

客户端提供主要的界面及服务请求,如:登录界面、注册界面、聊天界面、信息查看界面等。

客户端主要提供服务请求界面,核心连接逻辑处理主要由服务器提供,并向客户端发送请求的结果。

同时,服务器要能提供服务的开启、关闭功能及查看聊天信息历史记录。

小组成员:任课讲师和助教:年月日摘要这个课程设计整体采用在linux平台下,在同一局域网内实现聊天功能。

整体框架主要分为服务端和客户端两个部分,设置好ip和端口号,在Linux下编译和调试两主大块程序,实现服务端和客户端的连接,然后以服务端作为中继转实现客户端之间的通信。

使用gtk实现界面,并在项目管理中采用socket网络编程采用TCP/IP协议保证连接可靠,提高了编译和调试效率,加快了项目的完成速度。

本次设计的聊天工具采用字符串命令行的方式进行通信,主要实现了五个功能:用户之间一对一的聊天、用户之间聊天记录保存、聊天记录调取查询。

经过测试,程序运行可靠,能满足在linux中实现网络聊天的要求。

关键词:关键词linux,gtk,socket,mysql,服务端,客户端,网络编程AbstractWith the developing of information technology, especially internet, domain of GIS application has a great development in many fields. Recently, the development of GIS network utilization make a dramatically progress, and WebGIS which is based on Internet has been forwarded.XXXXXXXXXXXXXXKeywords: XXXXXX XXXXXXXXX目录摘要 (II)Abstract (II)目录 (III)第一章绪论 (1)1.1课题背景 (1)1.2 课题意义 (1)1.2.1 Linux的简介 (1)1.2.2 Linux的发展 (2)1.3 小组分工 (3)1.4论文组织 (3)第二章系统应用技术 (4)2.1 GTK的概念和功能 (4)2.2 socket概念和功能 (4)2.3 mysql概念和功能.......................................................................... 错误!未定义书签。

2.4小结 (5)第三章需求分析 (6)3.1 功能需求 (6)3.2 性能需求 (6)3.3 模块分布 (7)3.4 系统总体流程图 (8)第四章设计和实现 (13)4.1 XXXXXXX (13)4.2 XXXXX (13)4.2.1 XXXXX (13)4.3 XXXXXX (13)第五章系统测试 (14)5.1 测试说明 (14)5.2 模块测试 (14)5.3 测试结果分析 (14)第六章结论与展望 (15)6.1 结论 (15)6.2 展望 (15)参考文献 (16)致谢 (17)第一章绪论1.1课题背景QQ聊天软件系统是基于互联网的即时通信软件系统。

也就是使用因特网技术,允许人们实时的传送信息。

即时通信服务的特点是能让用户可以选择性的接受或拒绝某人的信息,也可以同一时间与多人进行交流.当前中国无线互联网呈现出爆发式的增长趋势,移动互联网渐成趋势,即时通信技术已经从PC机向手机媒体渗透。

本次项目主要是设计一个QQ聊天界面,该聊天工具是采用gtk、socket、mysql技术进行连接,以实现QQ登录、QQ注册、进行客户聊天并查看聊天记录等功能。

1.2 课题意义网络的诞生从某种意义上来说改变了我们的生活,它将这个世界的上不同地域的人之间的距离拉近了。

伴随着网络的诞生,网络聊天软件也随之而来。

最初的网络聊天软件只是有简单的文本界面,功能也十分有限,随着技术的不断发展与强大,拥有更多功能和美观界面的聊天程序走进了我们的生活,也有越来越多的人将网络聊天软件作为他们日常生活交流和通信的工具。

网络聊天软件在国外有ICQ等,在国内主要有OICQ、Ticq和一些基于网页的即时通讯工具,像tianmao网站上的旺旺等等,都做得即美观,简洁,且功能强大,OICQ现在拥有非常大的用户群。

现在也有很多在网络上不使用服务器的通讯软件,这种软件小巧且方便,也能解决一部分问题。

但是有服务器的通讯软件,有着不可比拟的优势:可以发送离线消息,不管用户当时是否在线,下次上线时,就可以看到这条消息了。

可以保存用户的个人信息或个人简介,供人查看。

而且,无服务器的通讯软件,是以机器为通讯单元的,而有服务器的聊天软件是以人为通讯单元的。

所以,带服务器的聊天软件在网络上,有着非常广泛的用途,为网络上的通讯带来了极大的方便,它使人与人之间的交流不再只局限于某一个范围,并且它的开销也是很小的,你只需要拥有一部可以联网的PC机就足够了1.2.1 Linux的简介在本次课题设计是在linux系统中完成的,所以首先需要了解linux系统的来龙去脉。

Linux是在Unix的基础上修改实现的,其主要的改变就是内核源码在网上完全公开。

所有人都可以把下载的内核源码拿来直接用或者任意的修改,并且经修改过后的源码也必须是公开的。

经过几年的发展,linux已经有很大的改变,所以现在linux有很多版本,但它们都遵循Linux最初的内核。

Linux系统的可移植性很高而且投资相对于其它系统而言较低,所以各种类型的计算机硬件设备中都选择安装linux系统,特别是现在很热的嵌入式设备中。

在现在的IT行业中,Linux就是一种表示内核,是大家普遍都认同的说法,因为linux是使用GNU 工程中各种工具和数据库的一种操作系统。

Linux得名于计算机业余爱好者Linus Torvalds。

Linux支持各种各样的软件(包括大量免费软件),因此为用户提供了很大的方便。

Linux在其创始人开发过后,就由世界上各种IT精英爱好者共同开发,提出他们自己的看法并进行修改,作为一个操作系统,它具有Unix、Mac、Windows 和WindowsNT同样的功能。

从本质上讲,Linux是Unix系统的克隆,在源码级上兼容绝大部分的Unix标准,它遵循POSIX规范。

只要是使用linux就不得不提到GNU,GNU项目开始于1984年,旨在开发一个类似 Unix、并且是自由软件的完整操作系统:GNU系统。

(GNU 是GNU Not Unix 的递归缩写)。

由于GNU操作系统的核心是linux,所以GUN的使用正在一步步变大。

Linux操作系统在早期开发和使用中有许多软件比如:gcc编译程序、make 编译管理程序、gas汇编程序、bash命令解释程序等等。

GNU和linux是相互依存的,没有GNU linux就是一个简单的框架,毫无使用之处,同时没有linux GNU 也不会受到人们的欢迎。

Linux 操作系统作为一个开源的操作系统被很多IT同行的人所认同,它能够吸引人最大的地方就是下载内核源码不需要成本。

只要使用遵循使用原则就可以任意使用并修改它的源代码。

1.2.2 Linux发展历程Linux的创始人,是一名叫Linus Torvalds的芬兰大学生。

他当时发现了Unix系统的一些薄弱功能给他带来了很多的不便,于是他决定在Unix的基础上继续开发出来有别于Unix 系统的操作系统,该系统弥补了Unix系统的缺点,同时又添加了新功能。

通过他不懈的努力,在linux内核中能实现一些基本的应用程序。

由于Linux一开始就把Linux的源代码放在网络上,引起了很多的爱好者的注意,因此这些爱好者也加入到linux内核开发中,随着越来越多的高水平的爱好者加入,该系统的发展迅速膨胀,很快各种版本的linux产生。

由于大量的增添和修改,使linux的文件框架越来越大,越来越稳定,而且实现了基本的TCP/IP 功能,使得linux在Internet中迅速成长。

经过二十多年的发展,现在Linux系统已经以成熟的一面展现在人们面前。

现在的Linux内核更加稳定和健全,而且获取内核源码更加的简单实用,所以现在的商家抓住这些特点,开始大量普遍的运用linux系统。

由于linux到目前为止几乎没有被木马和病毒所困扰,所以也把它当作一种强壮而安全的防火墙。

刚开始linux系统进入过后只是命令字符界面,还没有一个成型的桌面系统。

一个系统要受到人们的欢迎,必须要图形界面,并且图形界面要美观且操作简单。

所以桌面上的Linux也在不断的完善之中。

现在推行出来的ubuntu,centos等图形界面都很受人们的喜爱,可以和微软的界面系统一比高下。

由于linux系统内核小,兼容性好,效率高,稳定性强等特点,所以几乎在各个行业都能看见linux的身影,比如:军事,金融,电信以及政府。

当今计算机领域比较巨型的服务器大多采用LINUX操作系统。

可见LINUX在网络和分布式系统的应用将是很有前景的。

Linux 以后必将成为一种新的系统潮流。

1.3 小组分工主要介绍小组成员在课题实现过程中做了什么事情,解决了什么问题,对课题实现做了什么贡献。

1.4论文组织论文的组织结构如下:第二章系统应用技术2.1 GTK的概念和功能(1)概念:GTK +(GIMP TOOLKIT),是一个跨平台的图形界面(GUI)开发工具,是目前LINUX操作系统中较常用的图形界面开发工具之一,它采用一种非常有特色的面向对象的C语言开发框架(C Framework),应用它可以轻松的在LINUX系统平台的X WINDOW环境下开发出漂亮的图形界面应用程序。

直接用GTK+开发应用程序必须使用C/C++语言,所以您必须具有一定的C语言基础,最好用C语言开发过应用程序。

GTK+2.0是GNOME2桌面环境的图形基础,是GNU工程的一部分,采用LGPL条款分发。

(2)功能:2.2 socket概念和功能(1)概念:socket直接翻译过来的意思是插座,听起来挺古怪的,但是它的作用就类似于这个插座的作用。

作为了解socket的人都有另一种喊法:套接字。

它包含有IP地址和端口号的信息,是通信的必要条件。

套接字就是一个文件,是int型数字,它与文件描述符共用一段数值空间0-65535。

应用程序中使用套接字来调用套接口,套接字可以认为是指向套接口的指针。

相关主题