Linux下的聊天室软件

 2022-01-17 11:01

论文总字数:16412字

目 录

Linux下的聊天室软件设计 2

1背景 4

1.1 开发背景 4

1.2 linux介绍 4

2 技术说明 6

2.1 TCP和UDP通信原理说明 6

2.2客户/服务器模型 7

2.3多线程与多进程的概念 8

2.4 GCC编译器 9

2.5 Makefile文件的编写 9

2.6 GTK界面 10

2.7 数据库(SQLite) 10

3 实际应用 10

3.1 Openstack简介 10

3.2 简单Openstack环境的构筑 11

3.3 聊天室软件对openstack的适配 12

4 系统实现 12

4.1 Socket的系统调用 12

4.2 实现过程介绍 14

4.3系统实现模块介绍 16

4.3.1 服务器主函数模块 16

4.3.2 服务器进程函数模块 16

4.3.3 服务器线程函数模块 17

4.3.4 客户端主函数模块 17

4.3.5 客户端发送模块 17

4.3.6 客户端接收模块 17

4.4 具体功能概览 17

4.5 TCP通信的实现代码部分展示 18

5 运行效果 22

5.1 测试环境及软件说明 22

5.2 测试步骤 23

结束语 26

参考文献 27

致谢 28

Linux下的聊天室软件设计

钱越亮

,China

Abstract This graduation project has realized the chat room software design under linux. In the Linux environment, write and debug the server and client program, successfully achieved the client and server connections and communications. The chat room software can open two windows on a single machine, run the client and server programs separately, and also connect the two hosts as servers and clients respectively. The design uses the socket socket and multi-threaded technology, the use of database storage user information, the client uses the GTK interface. And use Linux Editor under the VI code editing, in order to achieve the client's private chat, chat, login, registration and other functions, and to complete adaptation in the openstack environment. The program has been successfully debugged by GCC debugger, and can be successfully used in stand-alone network chat and openstack environment.
Key words Network Chat Rooms; Linux; Socket; Vi;Openstack

1背景

    1. 开发背景

今天,网络在我们的生活中随处可见,在Internet上,有着QQ、MSN、Gtalk等网络聊天的软件,很大程度地方便了身处各个地区的我们的联系。这个世界似乎都在我们的视野中了,无论你身处何处,只要你能联网,能开启这些应用,你就能够给你的朋友们发消息,无论对方现在是不是现在,唯一需要的就是对方的号码。

Linux 操作系统作为一个开源的免费的操作系统正变得越来越受欢迎,它的源代码完全处于公开化状态!只要是基于GNU的软件我们都可以无限制的使用并且编辑他的源代码,极大地方便了计算机技术的交流以及发展。但是,对于那些经常使用windows的人们来说,Linux的使用还是不能被大部分人所接收,可视化界面也显得不够美观,正是这一点导致linux没能在桌面市场上得到很好的普及。所以在linux系统下制作一个人性化的聊天软件,能够给那些刚刚接触linux操作系统的用户提供不少便利,同时,设计这样一款应用软件还能够让自己更深入得理解网络编程以及掌握linux上编写软件的各种细节。将这些年所掌握的知识点都用到实践中,从而检测自己的学习是否扎实。

    1. linux介绍

Linux是一个用于个人计算机以及工作站上的操作系统,他有着类似windows和ios的可视化界面(GUI界面)。这个系统是由林纳斯托瓦兹开发的内核以及全世界计算机爱好者共同丰富的各项功能。作为一个计算机操作系统,他与Unix、ios和windows等操作系统有着类似的功能。
说到linux那就不得不说一下GNU以及Unix。由Richard M.Stallman所创办的自由软件联盟发布过这两个许可证,GNU通用公共许可证(GNU Gneral Public License,GPL)以及GNU函数库通用公共许可证(GNU Library Gneral Public License,LGPL)。很多的GNU的软件和文档都是根据GNU通用公共许可证发行的,不过也有一部分库是根据GNU函数库通用公共许可证来发行的。根据GNU通用公共许可证所规定的要求,Linux的源代码能够被任何人自由的观看和获取,这充分满足了计算机爱好者们学习计算机知识的欲望。GPL很好的表达了Stallman的心声:只要大家对源码的更改同样地自由,那么他就可以随意的查看、复制、更改甚至于将它发到网上。这样的话,就能很好的保证linux这个系统无论在什么时候,都能让大家用到被修改过的各个版本。
六十年代末,美国的汤普森和丹尼斯在一台非常老旧的机器上开发出了Unix。它一开始是由汇编程序写的,后来他们又试着用C程序重新编写,并将其用到了PDP-11上,Unix成为了一个着重于文本处理的系统。正因为如此,Unix在贝尔实验室里发挥了重大的作用。Unix系统一开始给很多知名大学免费提供使用,帮助教学。其中就有加州大学伯克利分校的计算机系,他们给Unix系统新增了不少功能, 也因此诞生了BSC版本的Unix。同时,也有很多独立的Unix版本慢慢的在诞生。Unix不停的在发展,为了管理不同的计算机,各版本的Unix系统都有着各自的优势。而Linux则是针对英特尔的个人计算机所设计的。
(1)Linux的起源
1991年,在芬兰有一个叫Linus Torvalds的大学学生对Unix各个版本都不太满意,因为它们对部分计算机的管理都有所欠缺。然后他就有了一个想法,就是参照Unix开发一款兼容性强、管理严格而又安全可靠的内核。他靠自己一个人的力量开发着这个内核,吸取其他系统的优点改进他们的缺点。

当内核版本升级到0.02时,它已经能够执行一小部分应用程序了。慢慢地,在意识到自己一个人有限的力量之后,linus开始将代码放到网上。这时候起,越来越多的人开始帮助他修改内核了。
到了94年的时候,Linux的已经升级到了1.0。在这同时,它的代码量已经以一个极快的速度在丰富起来了,也已经成功的实现了最基础的TCP/IP功能,Linux的使用人数已经达到了10万左右。
(2) Linux的现状
Linux如今已经成为了一个成熟的操作系统,被广泛用于服务器的构架。如今的Linux内核代码量已超过1000万行,他能给很多的商业用户们提供文件和打印的功能。它既能够作为邮件服务器的平台,也能够成为一个安全而强力的防火墙。
Linux有很多优点适合企业使用,例如它有着多处理器、日志文件系统及密集型计算与高可用性集群技术。
作为个人计算机的操作系统,Linux也在持续完善。KDE桌面的可视化用户界面为用户的操作、使用以及配置方面提供了很大的便捷。
(3) Linux的未来
由于开源的特点,Linux注定拥有强大的生命力。大家都可以随意得获得并更改其内核的源码,在你修改后,别人同样也能再次自由的获得你修改过后的源码。Linux的这种自由开放的模式被命名为bazaar。Bazaar模型重点在于实践,它收集早期的反馈信息并对其充分的利用,更科学的配置无数的脑力资源,凭借这些特点来开发出更多高效、易用的软件。

2 技术说明

2.1 TCP和UDP通信原理说明

(1)UDP

用户数据报协议简称为UDP。它是一种逻辑通信信道。UDP在进行数据传输之前不需要提前建立连接,在主机的传输层收到udp数据时,也不需要给出任何回应,因此udp通信是不能保证数据传输时的可靠性的。它的特点就是没有连接,导致提供了并不可靠的传输,并由此换来较高的传输效率。

(2)TCP

传输控制协议简称为TCP,它提供的则是一条建立连接的、可靠的信道。TCP在进行数据的传输之前需要建立连接,并且在数据传输结束后将会解除该链接。

因为TCP提供的是一条可靠的、建立连接的服务,因此自然会用到更多的系统资源,例如计时器、流量控制以及管理连接等都会占用不少的系统资源,主机在使用TCP进行通讯时,创建连接时需要有一个三次握手的程序,如下图2-1所示。

图2-1 用三次握手创建TCP连接

在两个计算机解除其连接时也需要经过与三次握手相似的过程来相互确认,如下图2-2所示。

图2-2 TCP连接的释放过程

2.2客户/服务器模型

剩余内容已隐藏,请支付后下载全文,论文总字数:16412字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;