ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:1.66MB ,
资源ID:6004773      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6004773.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(LinuxC局域网聊天项目设计书.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

LinuxC局域网聊天项目设计书.docx

1、LinuxC局域网聊天项目设计书Linux局域网聊天项目设计方案书项目题目: Linux局域网聊天系统项目成员: 李正兴 唐炜 曹永胜 张灯项目班级: 090301C 项目时间: 09.8.1-09.8.12 指导老师: 廖 卫 东1. 项目背景介绍1.1套接字介绍 套接字(Socket)起初来源于UNIX,是加利福尼亚大学Berkeley 分校开发的UNIX 操作系统下的网络通信接口。随着UNIX 操作系统 的广泛使用,Socket 亦当之无愧的成为了最流行的网络通信程序接口之一。 套接字存在于其特定的通信域(即地址族)中,只有隶属于同一地址族的套接字才能建立对话,Windows Socke

2、ts V1.0 目前只支持网际域(AF_INET),所有使用网际协议簇的进程均适用于该域。 一般情况下除非通信协议支持,只有相同类型的套接字方能相互传递数据,Windows Sockets V1.1 版主要支持两种类型的套接字:流式套接字和数据报套接字,还有一种是原始套接字,但为保证网络应用程序的兼容性,一般不鼓励使用原始套接字。 式套接字(SOCK_STREAM):该类套接字提供了面向连接 的、可靠的、数据无错并且无重复的数据发送服务。而且发送的数据是按顺序接收的。所有利用该套接字进行传递的数据均被视为连续的字节流的并且无长度限制。这对数据的稳定性、正确性和发送/ 接受顺序要求严格的应用十分

3、适用,TCP 协议使用该类接口。但其对线路的占用率相对提高。流式套接字的实现屡见不鲜,如远程登录(TELNET)、文件传输协议(FTP)等均使用了流式套接字。 数据报式套接字(SOCK_DGRAM):数据报式套接字提供了面向无连接的服务 , 它独立的数据包形式发送数据( 数据包长度不能大于32KB),不提供正确性检查,也不保证各数据包的发送顺序,因此,可能出现数据的重发、丢失等现象,并且接收顺序由具体路由决定。然而,数据报的实现对网络线路占用率较低。NFS(网络文件系统)即是采用此类套接字、在TCP/IP 协议族中,UDP(User Datagram Protocol)使用该类接口。 原始套接

4、字(SOCK_RAW): 该套接字一般不会出现在高级网络接口的实现中,因为它是直接针对协议的较低层( 如IP、TCP、UDP 等) 直接访问的。常用于检验新的协议实现或访问现有服务中配置的新设备,如前所述,一般不提倡他的直接应用。1.2 c/s架构介绍 C/S结构(Client/Server结构)是大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Cli

5、ent/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。 C/S结构软件(即客户机/服务器模式)分为客户机和服务器两层,客户机不是毫无运算能力的输入、输出设备,而是具有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。由于服务器连接个数和数据通信量的限制,这种结构的软件适于在用户数目不多的局域网内使用。国内目前的大部分ERP(财务)软件产品即属于此类结构。

6、B/S(浏览器/服务器模式)是随着Internet技术的兴起,对C/S结构的一种改进。在这种结构下,软件应用的业务逻辑完全在应用服务器端实现,用户表现完全在Web服务器实现,客户端只需要浏览器即可进行业务处理,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构。e通管理系列产品即属于此类结构。1.3项目要求 项目采用C程序设计语言,设计基于WinSock的文件传输系统。利用C/S架构及WinSock知识,实现文件的传输;在服务端和客户端分别建立套接字,并绑定到某个端口上,同时对winsock dll进行初始化,协商winsock的版本支持并分配必要的资源。服务端调用wins

7、ock的accept方法,实现套接字的侦听,等待客户端的连接请求;客户端调用winsock的connect方法建立连接。先启动服务器,则等待客户端连接,若先启动客户端,则客户端要对服务端进行多次连接。在连接的过程中如有异常应有相应提示信息。连接成果后,由服务端向客户端做相应的操作。如传送文件。或者聊天。如果客户端同意,则继续操作。若不同意,则返回主目录。 传送文件时,服务端必须先得到客户端的同意,在向客户端传送文件的信息,如大小,文件名。之后通过分块进行发送。在发送的过程中要注意是否有丢包,并进行检测。如有则有提示信息。在传送的过程中要随时显示传送的进度及接受读写等信息。文件发送完毕退出相应程

8、序,返回主目录,进行其他的操作。 聊天模块同样由服务端客户端进行申请,得到同意后才可进行连接。显示的信息应包括用户姓名,发送时间,及消息内容。用户若要退出,输入EXIT即可。之后程序返回主目录,进行其他的操作。在这些模块中,如双方中有一方突然异常的关闭窗口,应进行检测,并作出相应操作,如“服务端已退出程序,本端也将退出”。2. 项目流程2.1流程概述系统的工作流程:当系统安装在Linux操作系统上后,客户可以只安装该系统的客户端,客户通过客户端开连接服务器,服务器时可以在局域网中的另一台机器上的。客户端进入系统后,首先进行IP设置,即填写服务器所在的IP地址,填写后,客户端会自动检查该IP 地

9、址的合法性,若不合法,提示用户,并且重新输入,若合法,则进行连接服务器,此时客户端会自动创建套接字,然后将其绑定,然后发送到服务端进行连接,以上前提条件时,客户在进行IP设置的时候,服务器必须时开启的,否这无法连接,这时客户端服务器端都会给出相应的错误警告。若服务器开启,上述操作完成后,客户端的程序会自动的连接上服务器,服务器监听到,然后连接成功后服务器会发送连接成功的信息返回到客户端,系统连接上后,会自动跳转到登录系统,若任然未连接成功,会在客户端和服务器端给出提示信息!在登录系统中,客户端需要进行注册,登录才能进入相应的主要功能界面,在注册时,客户端会将当前用户的注册信息发送到服务端,服务

10、器对他该用户信息进行检测,若发现用户注册的用户名已经存在,则提示用户该用户名存在,则用户需要重新注册,否则,服务器会发送相应的信息个客户端,提示用户注册成功,并将用户的信息保存到相关的文件中,为登录时的验证身份做准备,在服务器上也会给出相应的提示信息。注册完毕后,自动跳转到登录界面。用户进入登录界面后,输入注册的用户名和密码,此时客户端同样会将该信息发送到服务器上进行验证,此时服务器将打开保存用户信息的文件,进行校验,若发现用户名或者密码输入不正确,服务器将返回相应的信息给用户,提示用户重新输入,直到用户输入成功,或者用户退出为止。登录成功后,用户会进入主功能界面,主功能界面包含文件的上传(即

11、客户发送文件到服务器)和下载(即服务器的文件发送到客户端),聊天,查看当前在线用户,查看当前的聊天信息,和退出。在进行上传和下载的过程中,采用的时分模块下载,我们为了界面的美观性,在下载过程中对其进行了短暂的睡眠,此时用户能清晰的看到下载过程中相关的信息,在上传和下载的过程中都要验证下载的文件是否是普通文件,不是给出提示信息,并退出下载。在下载或上传文件中,客户都需要指定文件的所在的路径,和上传或者下载后文件所在的路径,如果不给文件上传或者下载的路径,则将其放在默认的路径下。下载完成后,自动跳转回到主界面。在查看当前在线用户时,我们建立了一个在线用户信息文件,用来保存登录成功的用户信息,当客户

12、需要查看在线用户信息时,服务器调用该文件,读取在线用户的信息发送给客户端,客户端就可以查看到相关在线用户的姓名和状态。聊天模块中,我们采用的时多重IO,客户端可以发送信息到服务器,服务器接受后,同样也可以发送相关的信息到客户端,实现聊天。在聊天信息的发送中,我们小组将用户姓名,发送信息时间,和信息体封装在一个结构体中,进行块操作,这样客户端客户端都能获得相关的聊天信息。无论那方发送quit(退出命令),都会使客户端退出聊天,使客户端回到主界面。在查看聊天记录时,聊天记录是保存在一个以用户命名的文件中,并保存在本地(即客户端),客户需要查看聊天记录时,可以通过命令来查看相关的聊天信息,也可以在本

13、地找到该文件打开查看。退出,当用户想退出该系统时,系统会提示用户是否确定退出,不是,客户端跳回主界面,继续进行相关的操作,是,则客户端退出,服务器也受到相关的提示信息,服务器然后将该客户的在线状态修改,并断开与该客户的连接。2.2项目流程图文 件 传 输 系 统返回服务端不同意不同意0 返回客户端返回客户端连接异常中断连接异常中断连接异常中断聊天聊天2.3详细设计2.3.1 系统主界面模块 服务器主要时执行客户端的命令,所以服务器基本不去打印其他信息,主要的功能命令都在客户端。连接时,客户端调用do_connect(), ip_set(), ip_effect(),服务器调用init()下面是

14、服务器设置的截图: 1-1 连接服务器IP设置 登陆界面在服务器与客户端正确连接后,自动的调用,注册时客户端和服务端都调用do_register()函数,登陆时客户端和服务端都调用do_login()函数,退出时客户端和服务端都调用do_bye()函数. 下面是登录界面的截图: 1-2 主界面 登陆界面中输入的用户名和密码都会在服务器去验证,若正确,则容许客户端进入主功能界面,否则提示用户,并重新输入!在验证时,在服务器端调用do_login()函数。 登陆界面截图: 1-3 登陆界面 主要功能界面:在登陆成功后,自动跳转到改界面,用户可以在这个界面选择相应的数字来完成相对应的功能,主要功能界

15、面在每个功能成功执行后,都能再次跳转回来,主功能界面时用户和服务器”沟通”的主要界面。 下面是主功能界面截图: 1-4 主要功能界面 在用户选择上传或下载时,进入到如下界面,在服务器和客户端同时调用do_put(),do_get()函数。 下面时上传时的截图: 1-5 上传 查看在线用户,查看在线用户时,会在服务器端把在线用户的文件夹打开,循环发送到客户端,同时调用do_online()函数。 下面时显示在线用户的截图: 1-6 显示在线用户 聊天函数是这个系统的一个大模块,采用的是多重IO 输入,在实现此功能时客户端和服务器同时调用do_chat()函数。 聊天时截图: 1-7 聊天 查看聊

16、天记录,在用户聊天结束后,聊天记录被保存在客户端当前目录下(即本地),并以客户端用户名命名的文件中,用户查看聊天记录时,可以直接打开改文件件,或者通过界面的功能来查看聊天记录。 下面时通过命令来查看聊天记录的截图: 1-8 聊天记录退出时会请求用户是否确认退出,防止用户的误操作,给用户带来不必要的麻烦。 用户退出时,会告知服务器,并断开相应的链接,服务器同时会修改用户的在线状态,并断开其连接。 下面是退出时的确认退出截图: 1-9 用户确认退出3. 项目中的细节描述3.1项目中曾出现的问题3.2项目有待进一步完善的地方4. 项目总结参考文献aC语言WinSock学习笔记 作者:肖进 发布:dxy 发布日期:2007-12-11 21:19:42b开发Windows Sockets通信应用程序的经验与实践 青岛海军潜艇学院软件中心(266071) 徐立国cWinSock网络编程实用宝典 Free Programming - 博客园dC语言网络编程必备 C语言空间 ec语言的文件和文件操作(转载) cser之家 fWindows Sockets 规范及应用 上海交通大学 秦颖 李铮附 :程序主要源代码

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1