linux平台下的聊天软件的设计与开发毕业设计(编辑修改稿)内容摘要:

83。 15 服务器主要函数和变量 15 服务器消息处理模块的设计与实现 15 服务器数据存储的方法 16 客户端主要窗口设计 17 客户端主要函数和变量 20 客户端功能模块的设计与实现 21 本章小结 错误 !未定义书签。 结 论 错误 !未定义书签。 参考文献 错误 !未定义书签。 致 谢 错误 !未定义书签。 声 明 错误 !未定义书签。 第 1 页 共 26 页 1 引 言 课题的 背景 及意义 在网络无所不在的今天,在 Inter 上,有 ICQ、 MSN、 Gtalk、 OICQ 等网络聊天软件, 极大程度上方便了处于在世界各地的友人之间的相互联系,也使世界 好像 一下子缩小了,不管你在哪里,只要你上了网,打开这些软件,就可以给你的朋友发 送 信息,不管对方是否也同时在线,只要知道他有号码。 Linux 操作系统作为一个开源的操作系统被越来越多的人所应用,它的好处在于操作系统源代码的公开化。 只要是基于 GNU 公约的软件你都可以任意使用并修改它的源代码。 但对很多习惯于 Windows 操作系统的人来 说, Linux 的操作不够人性化、交互界面不够美观,这给 Linux 操作系统的普及带来了很大的阻碍。 因此制作一个 Linux 操作系统下的拥有人性化界面的实时通讯工具,将给那些刚刚接触 Linux 操作系统的用户带来极大的方便,而且通过设计这样的一个应用程序还能更好的学习网络编程知识和掌握 Linux 平台上应用程序设计开发的过程,将大学四年所学知识 综合 运用,以达到检验学习成果的目的。 网络聊天软件的 发展及 现状 网络的诞生从某种意义上来说改变了我们的生活,它将这个世界的上不同地域的人之间的距离拉近了。 伴随着网络的诞生,网 络聊天软件也随之而来。 最初的网络聊天软件只是有简单的文本界面,功能也十分有限,随着技术的不断发展与强大,拥有更多功能和美观界面的聊天程序走进了我们的生活,也有越来越多的人将网络聊天软件作为他们日常生活交流和通信的工具。 网络聊天软件在国外 有 ICQ 等,在国内 主要有 OICQ、 Ticq 和一些 基于网页的即时通讯工具,像 Chinaren 网站上的 WebMaster 等等,都做得即美观,且功能强大, OICQ 现在拥有非常大的用户群。 现在也有很多 在网络上不使用服务器的通讯软件,这种软件小巧且方便,也能解决一部分问题。 但是有服 务器的通讯软件,有着不可比拟的优势:可以发送离线消息,不管用户当时是否在线,下次上线时,就可以看到这条消息了。 可以保存用户的个人信息或 个人简介 ,供人查看。 而且, 无服务器的 通讯 软件 ,是以机器为通讯单元的,而 有服务器的 聊天软件是以人为通讯单元 的。 所以 , 带服务器的聊天 软件在网络上, 有着非常广泛的用途 ,为网络上的通讯 带来 了 极大的方便 ,它使人与人 之间 的交流不再只局限于某一个范围 ,并且它的开销也是很小的,你只需要拥有一部可以联网的 PC 机就足够了。 第 2 页 共 26 页 TCP/IP协议 简介 TCP/IP 是国际互联网所采用进行网际互连的通信协 议。 实际所称的 TCP/IP协议包括了在国际互联网络应用的一组协议,互联网协议族是此协议族的另一个名字。 TCP 协议 简介 因为我们这个程序所采用的是面向连接的 TCP 协议,所以我们这里就只对TCP(传输控制协议)这一部分作详细的介绍。 TCP:传输控制协议( TCP: Transmission Control Protocol) 传输控制协议是一个 TCP/IP 组中能够实现可靠数据传送的传输层协议,并通过顺序响应能实现对应用程序的虚拟连接服务,在必要的时候进行包转发。 与 IP 协议相结合, TCP 代表了网络协议的 核心。 大多数网络应用程序是在相同的机器上运行的,计算机上必须能确保目的地的应用程序从源地址处获得数据包,及源计算机上的应用程序的回复获得选择 的路经。 这一过程是通过使用 TCP 的 “ 端口号 ” 完成的。 网络 IP地址和端口号的连接要达到唯一的标识 ,我们称之为 “ 套接字 ” 或 “ 端点 ”。 为了可靠通信, TCP 在端点间建立了连接或虚拟电路。 TCP 服务提供了数据流传输、可靠行、有效流控制、全双工操作和多路复用技术等。 关于数据流传输, TCP 发送一个由序列号定义的无结构的字节流。 这对应用程序有利,因为在被送出 TCP 之 前应用程序不需要划分成块, TCP 可以将字节整合成字段 ,然后发送给 IP。 TCP 是面向连接的端到端的可靠协议 ,并保证传送数据包的顺序,而顺序是用一个响应序号来保证的,这个响应序号告诉接收者发送者期望的下一个包。 如果在规定时间内,没有收到关于这个包的确认响应,则需要重新发送此包。 TCP 的可靠机制允许设备处理丢失、删除及读错的包。 暂停机制允许设备监测丢失 的 包并请求重发。 TCP 提供了有效流控制。 当向发送者返回发送确认响应,接收 TCP 进程就会暗示最高序列号,它能接收并保证不会发生溢出。 全双工操作: TCP 进程能够同时发送和接收包。 TCP 中的多路技术:大量上层同时会话在单连接时进行多路复用。 UDP 协议 简介 UDP 协议 是英文 User Datagram Protocol 的缩写,即用户数据报 协议 ,主要用来支持那些需要在计算机之间传输数据的网络应用。 包括网络视频会议系统第 3 页 共 26 页 在内的众多的客户 /服务器模式的网络应用都需要使用 UDP 协议。 UDP 协议 从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似 协议 所掩盖,但是即使是在今天, UDP 仍然不失为一项非常实用和可行的网络传输层 协议。 与我们所熟知的 TCP(传输控制 协议 ) 协议 一样, UDP 协议 直接位于 IP(网际 协议 ) 协议 的顶层。 根据 OSI(开放系统互连)参考模型, UDP 和 TCP 都属于传输层 协议。 UDP 协议 的主要作用是将网络数据流量压缩成数据报的形 式。 一个典型的数据报就是一个二进制数据的传输单位。 每一个数据报的前 8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。 既然 UDP 是一种不可靠的网络 协议 ,那么还有什么使用价值或必要呢。 其实不然,在有些情况下 UDP 协议 可能会变得非常有用。 因为 UDP 具有 TCP 所望尘莫及的速度优势。 虽然 TCP 协议 中植入了各种 安全 保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。 反观 UDP由于排除了信息可靠传递机制,将 安全 和排序等功能移交给上层应用来完成,极大降低了执行时间,使速度得到了保证。 套接字简介 应用层通过传输层进行数据通信时, TCP和 UDP 会遇到同时为多个应用程序进程提供并发服务的问题。 多个 TCP连接或多个应用程序进程可能需要通过同一个 TCP 协议端口传输数据。 为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程 序与 TCP/ IP协议交互提供了称为套接字 (Socket)的接口。 区分不同应用程序进程间的网络通信和连接, 套接字 主要有 3个参数:通信的目的 IP 地址、使用的传输层协议 (TCP 或 UDP)和使用的端口号。 通过将这 3个参数结合起来,与一个 Socket 绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务 开发平台简介 Linux 系统简介 Linux 操作系统是 UNIX 操作系统的一种克隆系统。 它诞生于 1991 年的 10 月 5 日(这是第一次正式向外公布的时间)。 以后借助于 Inter 网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。 GNU 计划和自由软件基金会 (the Free Software Foundation FSF)于 1984 年创办。 旨在开发一个类似 Unix、并且是自由软件的完整操作系统: GNU 系统。 在 Linux 平台上运行的软件都是免费使用的,且你可以随意的改动代码部分,只要他们是完全基于 GNU 的。 第 4 页 共 26 页 Gtk+图形开发库 简介 Gtk+(GIMP Toolkit, GIMP工具包 )是一个用于创造图形用户接口的图形库。 Gtk+是基于 LGPL授权的。 Gtk+图形库使用一系列称为“构件”的对象来创建应用程序的图形用户接口。 它提供了窗口、标签、命令按钮、开关按钮、检查按钮、无线按钮、框架、列表框、组合框、树、列表视图、笔记本、状态条等构件。 可以用它们来构造非常丰富的用户界面。 在用 Gtk+开发 Gnome 的过程中,由于实际需要,在上面的构件基础上,又开发了一些新构件。 一般把这些构件称为 Gnome 构件 (与 Gtk。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。