1 / 11
文档名称:

毕业设计(论文)基于Linux的局域网聊天系统软件.doc

格式:doc   页数:11
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

毕业设计(论文)基于Linux的局域网聊天系统软件.doc

上传人:qujim2013 2013/5/19 文件大小:0 KB

下载得到文件列表

毕业设计(论文)基于Linux的局域网聊天系统软件.doc

文档介绍

文档介绍:CSLT在线聊天系统
设计书
目录
1 引言 2
项目简要介绍 2
项目背景 2
2 任务概述 2
目标 3
运行环境 3
3 需求规定 4
功能需求 4
性能需求 4
数据精确度 5
4 总体设计 6
基本设计概念和处理流程 6
总体结构 7
5 服务器及接口设计 8
6 客户端及接口设计 10
7 使用说明 11
1、引言
项目简要介绍
CSLT在线聊天系统针对C/S模型,模仿QQ聊天程序,对高级编程、网络编程、C语言、数据结构等知识综合应用,设计一个具有聊天、文件等简单功能的C/S聊天程序。
项目背景
随着电脑和互联网络的普及,网络聊天已经成为人们工作生活中传递信息、交流感情的重要工具。网络版的聊天软件种类繁多,如QQ,OTCQ, MSN 等实现随时随地的上网聊天,给人们带来了很大的方便。本小组全体成员基于当前信息时代的发展与课程的要求,以锻炼我自为目的,并准备早日投身到信息建设的大潮中,最后成功开发设计了本聊天系统。
任务概述
目标
在Linux平台上,搭建基于C/S架构的即时多用户聊天系统,使用TCP/IP协议实现网络即时聊天的各项基本功能,并实现文件传输。
服务器
客服端n
客服端1
客服端2
服务器发送消息或转发消息、文件给客户端
客户端发消息、文件给服务器
()
运行环境
、硬件环境:
处理器:Intel Pentium PIII或更高处理器
内存:512MB或更高
网络:局域网
、软件环境
操作系统:Red Hat Enterprise Linux 5
开发平台:VMware Linux
开发语言:c
3、需求

C/S服务器
正确处理客户端登陆、离线
为客户端提供对个人聊天信息进行维护、更新
支持并发处理
定时发送客户的好友的状态
日志文件,故障信息记录
客户端
登录、离线
在线信息\文件的发送
离线消息\文件接收
查看聊天记录

(1)、能够实现快速的登录与退出;
(2)、用户能够及时接收消息以及快速回复消息;
(3)、文件及时传输;
(4)、用户信息数据的保存和更新;
(5)、系统检测到故障时,将自动退出避免应该其他系统;
数据流图
服务器
数据存储库(消息队列)


1


2
消息
文件
消息
文件
存储用户1 日志
聊天记录
存储用户2 日志
聊天记录
用户1
管理
(子进程)
用户2
管理
(子进程)
(图 )
4、总体设计
CSLT聊天系统开发是基于LINUX操作系统,是由服务端和客户端组成,主要功能是客户端之间的聊天和文件传输。
服务端实现的是对客户端消息的识别及转发,其主要基于多进程并发和消息队列以达到对客户端消息的识别及转发。
客户端实现的是客户对消息的接收、发送和文件的传输、接收,最后把接收的消息打印到终端和把接收的文件保存。
原理流程图(如图 )
创建连接
客户登陆
等待客户端连接
登陆成功
登陆失败
连接服务器
与服务器成功连接
与客户端连接成功
父进程
创建子进程
读取消息队列
读取成功
读取失败
多路复用
小于0
退出进程
等于0
大于0且
FD_ISSET(sock_new, &read_fds)不等于零
接收客户端消息
把客户端发送的消息加入消息队列
多路复用
大于0FD_ISSET(stdin, &read_fds)不等于零
客户端发送消息
大于0FD_ISSET(sock, &read_fds)不等于零
读取消息
服务端
客户端
与服务器连接失败
连接超三次退出
(图 )
5、服务器及接口设计

服务端是基于c语言来设计的,设计方法采用模块化设计。
(1)打开一个通信通道并通知网络:本机将在某一公认的端口上等待客户(Client)请求;
(2)服务器进入阻塞等待状态,等待客户请求的到来;
(3)当服务器接收到一个客户的连接请求时, 激活一个新的进程用于处理客户请求并建立C/S 对话,服务完成后,关闭此新进程与户的通信链路, 并将其终止;
(4)返回第(2)步,等待另一客户请求;
(5)关闭服务器。

客户端发送的消息日志:
int message_log_send(char * message,int port);
客户端接收的消息日志:
int message_log_recv(cha