摘 要
如今互联网技术高度发达,网络聊天软件作为一种开销低且方便快捷的通讯手段,被越来越多的人所使用。
本文阐述了如何使用GTK+图形开发库和C语言编写一个基于LINUX平台运行的聊天软件的过程。文章主要分为四个部分,第一部分主要分析了该类产品的一个发展过程和开发此类软件的背景及意义。在此基础上,进一步的分析了该类产品的需求情况。在第三章中详细的介绍了所选取的开发环境,通过了解这些知识将会对该类软件的开发流程有一个总体的认识。之后,在通过对预备方案的分析和总结后,最终确定设计路线。
程序设计路线这一章节对该软件的各个功能模块和操作处理流程进行了详细的划分和设计,并且运用各种图表清晰的展现了软件的模块信息和总体结构。软件的预期效果在这一章节中得到了体现,完成效果符合前期的需求分析。
最后总结了该软件开发的不足之处,还有软件需要完善的部分。(毕业设计网 )
关键词:LINUX系统;C/S结构;TCP/IP协议;网络编程;图形用户界面
Design and Implementation of Chat Software on the Platform of LINUX Operating System
Abstract
Nowadays the network technology develops very rapidly, the chat program as a cheap and quick means of communication has been adopted by more and more people in the world.
This disquisition expounds how to use the GTK+ and C cord a chat program based on the LINUX platform, and the paper is divided into four parts. The first part is to deal with the development of this product and the background and significance of developing of this software. On this basis it goes on to describe the demand for this product. The third part introduces the choice about the circumstance of this development. With such knowledge in hand, we have a general idea of the developing program of this software. And the design idea will be determined through the analysis and summing-up of the preparatory design.
In the section dealing with the program design, all the function modes and their operation flow of this software give an account of the detailed division and design. In addition, all the charts show the information of the modes and their whole structures.
Finally, the paper points out the shortcomings in the design of the software. And it is hoped that further efforts will be made in the design.
Key words: LINUX Operating System; Client/Server Model; TCP/IP Protocol; Network Programming; Graphics User Interface
课题的背景及意义
在网络无所不在的今天,在Internet上,有ICQ、MSN、Gtalk、OICQ等网络聊天软件,极大程度上方便了处于在世界各地的友人之间的相互联系,也使世界好像一下子缩小了,不管你在哪里,只要你上了网,打开这些软件,就可以给你的朋友发送信息,不管对方是否也同时在线,只要知道他有号码。
Linux 操作系统作为一个开源的操作系统被越来越多的人所应用,它的好处在于操作系统源代码的公开化!只要是基于GNU公约的软件你都可以任意使用并修改它的源代码。但对很多习惯于Windows操作系统的人来说,Linux的操作不够人性化、交互界面不够美观,这给Linux操作系统的普及带来了很大的阻碍。因此制作一个Linux 操作系统下的拥有人性化界面的实时通讯工具,将给那些刚刚接触Linux操作系统的用户带来极大的方便,而且通过设计这样的一个应用程序还能更好的学习网络编程知识和掌握LINUX平台上应用程序设计开发的过程,将大学四年所学知识综合运用,以达到检验学习成果的目的。(毕业设计网 )
编程语言和编程工具简介
因为C语言是平台适应性最强的语言,差不多每种平台上都会有一个C编译器。C语言也更易移植,因而,在Linux下编程的最佳语言应该是C语言,Linux上的很多应用程序就是用C语言写的。因为Gtk+ 和Gnome是用C语言编写的,所以在开发LINUX下的GUI程序时使用C语言是非常方便的。
LINUX发布版本中都提供了C编译器gcc,它目前的版本是4.1。
LINUX系统下的gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30% gcc 编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。
调试器GDB能让你观察另一个程序在执行时的内部活动,或程序出错时发生了什么。
GDB主要能做四件事(包括为了完成这些事而附加的功能),帮助用户找出程序中的错误。
运行程序,设置所有的能影响程序运行的东西。
保证程序在指定的条件下停止。
当程序停止时,让用户检查发生了什么。
改变程序。那样用户可以试着修正某个bug引起的问题,然后继续查找另一个bug。
用户可以用GDB来调试C和C++写的程序。
软件功能需求
登录功能。
申请新用户的功能。
客户可以通过服务器转发,实现一对一的聊天。
服务器端可以保存用户的信息。
客户端程序可以显示在线好友。
应该具有易用、美观的图形界面。
总体性能需求
1 服务器端性能需求
服务器需要同时连接很多个用户,并能提供给这些连接用户所需要的任务处理请求,这就要求服务器能同时处理多个socket连接。
服务器模型一般分为循环服务器和并发服务器,循环服务器一次只能处理一个连接,也就是说同一时间只能由一个用户连接到服务器进行消息处理,这种情况是不被允许的。
因此我们将采用多线程方式的并发服务器来设计服务器端,这样将能从很大程度上提高服务器的运行效率。
2 客户端性能需求
客户端只需要连接到服务器便可以进行任务的处理工作,因此客户端的主要性能要求为图形界面运行的稳定性和对出错信息的及时反映。
当一个窗体出现问题时能够及时的处理,让主程序不受影响。
3 错误处理需求
所有的应用程序在运行过程中都会出现出错的情况,这种错误可能来自于程序本身的BUG也可能是用户操作的失误所造成的。当有错误发生时,我们应该有一个很好的机制来保障错误能够及时地被排除。
因此,当应用程序出现了错误的时候我们就需要程序能提供给我们出错的信息,这样用户就能够很快的找出具体的出错原因,以便寻找合理的途径去解决它。(毕业设计网 )
目 录
1 引言 1
1.1 课题的背景及意义 1
1.2 网络聊天软件的发展及现状 1
1.3 TCP/IP协议简介 2
1.3.1 TCP协议简介 2
1.3.2 UDP协议简介 2
1.4 套接字简介 3
1.5 开发平台简介 3
1.5.1 LINUX系统简介 3
1.5.2 Gtk+图形开发库简介 4
1.5.3 Gnome的开发结构简介 4
1.5.4 Glade集成开发工具简介 4
1.5.5 编程语言和编程工具简介 5
1.6 本章小结 5
2 软件需求分析 5
2.1 软件功能需求 5
2.2 总体性能需求 6
2.2.1 服务器端性能需求 6
2.2.2 客户端性能需求 6
2.3 错误处理需求 6
2.4 本章小结 6
3 程序设计方案 6
3.1 方案比较 6
3.1.1 采用TCP方式连接 6
3.1.2 采用UDP方式连接 7
3.2 方案选择 8
3.3 总体设计方案 8
3.3.1 服务器功能模块划分 8
3.3.2 客户端功能模块划分 8
3.3.3 消息标识的定义 9
3.3.4 消息结构体的设计 10
4 软件流程 11
4.1 服务器消息处理流程 11
4.2 客户端操作流程 12
4.3 客户端消息发送和接收流程 13
(毕业设计网 )
4.4 申请用户流程 14
5 详细设计 15
5.1 服务器主要函数和变量 15
5.2 服务器消息处理模块的设计与实现 15
5.3 服务器数据存储的方法 16
5.4 客户端主要窗口设计 17
5.5 客户端主要函数和变量 20
5.6 客户端功能模块的设计与实现 21
5.7 本章小结 23
结 论 23
参考文献 24
致 谢 25
声 明 26
Li(1)
·站内提供的所有资源均是由网上搜集或网友上传,任何涉及商业盈利目的均不得使用,仅能作为学习研究目的使用,否则产生的一切后果将由您自己承担!请您于24小时内自觉将其删除并向著者购买使用许可证。 ·站内提供的所有资源均是由网上搜集,若侵犯了您的权益,敬请来信通知我们! |