- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中南民族大学
软件课程设计报告
电子信息工程学院09级 电子工程专业
题目: 简易网络聊天系统
学生: 吴雪 学号:
指导教师: 王锦程
2012年4月25本设计的目标是用语言设计一个的程序。程序写完后最终生成一个客户端,它由client和server两部分组成,client和server之间的通信基于TCP协议。实现数据的收发。输入目的主机的IP,连接到目的主机,客户端与客户端之间即可实现简易的聊天和传输文件的功能Winsock是90年代初,由Microsoft联合了其他几家公司共同制定一套WINDOWS下的网络编程接口,winsock.h头文件和动态链接库winsock.dll组成,目前有两个版本:Winsock1.1和Winsock2.0。作为网络编程接口,Winsock屏蔽了网络底层的复杂的协议和数据结构,使得编程人员对网络的操作变得非常简单,因此,在Win32平台上,访问众多的基层网络协议,Winsock是首选接口。开发平台我选用了VC6.0,因为一直以来都使用VC6进行学习,对这个IDE最为熟悉,再者VC同样是由微软开发的系统,与其操作系统,网络接口具有最为密切的契合优点,所以选择了VC6.0。
2.2 设计思想、设计框图及数据库表结构
(1)系统总体设计思想:通常的通信工具,都采用客户机/服务器(C/S)体系结构,C/S结构是这样的一种结构:它包括一个客户机(或前端),一个服务器(或称后端),客户机的作用是访问和处理远程服务器上的数据,服务器的作用是接收和处理客户机的数据请求。有时,可能有多个客户向同一个服务器同时请求服务,这就需要服务器决定怎样处理这些请求。Client/Server结构是当前数据库应用程序中极为流行的一种方式。尤其是网络技术的发展,使得当前很多系统都采用这种方式进行构造,其最大的优点是将计算机工作任务分别由客户端和服务器端来共同完成,这样有利于充分合理的利用系统资源。另外它的服务器端还可以将信息集中起来,任何客户机都可以通过访问服务器而获得所需的信息。Client/Server模型最终可归结为一种“请求/应答”关系。一个请求总是首先被客户发出,然后服务器总是被动地接收请求,返回客户需要的结果。在客户发出一个请求之前,服务进程一直处于休眠状态。一个客户提出请求后,服务进程被“唤醒”并且为客户提供服务,对客户的请求做出所需要的应答。在客户端启动后,客户端计算得到本地网络的广播地址,进行广播查找服务器端,服务器接收到客户端的广播信息后返回服务器地址,则客户端接收、验证信息并记录服务器端地址,然后客户端启动定时期,定时发送信息到服务器,以告知服务器自己在线,然后服务器返回在线用户列表,服务器依靠客户端发送的信息来更新维护在线用户列表。在客户端与服务器尽心数据交换,拥有了在线用户列表后,就可以选择IP进行客户端之间的点对点信息交流了。如果服务器不在线,则客户端会提示用户退出,在一定的时间后自动退出。
图(1)设计思路框图
(3)数据库表结构及表间关系
图(2)数据库表结构及表间关系
第三章 各模块功能及主要模块的流程图
3.1 各模块功能简介
1.Connect():int connect ( SOCKET s, const struct sockaddr FAR* name, int namelen);
【使用说明】
与通信对象建立连接,主要用在客户端。其中s、name和namelen的含义与使用方法和bind()相同。如果连接失败,该函数会返回SOCKET_ERROR。
2.listen():int listen (SOCKET s,int backlog);
【使用说明】
对于服务器端程序,当申请到Socket,并指定通信对象为INADDR_ANY之后,就应该等待一个客户端程序的连接。当没有连接请求时,就进入等待状态,直至有一个请求到达为止。其中:
s输入:是socket()创建的socket。
backlog输入:等待连接的队列长度,可取1~5。如果当某个客户程序要求连接之时,服务器已与其他客户程序连接,则后来的连接请求会被放在队列中,等待服务器空闲的时候再与之连接。当队列达到指定长度(backlog的值)时,再来的连接请求都将被拒绝。
3.accept():SOCKET accept (SOCKET s,struct sockaddr FAR* addr,int FAR* addrlen);
【使用说明】
对与服务器端程序,在接收到一个连接请求之后,要为这个连接建立一个新的socket,这个任务由accept()函数来完成,并把它作为返回值。新建的Socket与原来的Socke
您可能关注的文档
最近下载
- 2024年江西信息应用职业技术学院单招职业适应性测试试题库及参考答案解析.docx
- 药丸不是糖豆豆.pptx VIP
- 常用阀门基础知识.ppt VIP
- 必威体育精装版人教版五年级数学上册第一单元《小数乘整数》课件.ppt
- 2024届高考作文模拟写作训练:行者常至,为者常成.docx VIP
- 2024年江西信息应用职业技术学院单招职业技能测试题库及答案解析.docx VIP
- 绿皮书电影课件.ppt
- 鼻出血处理(幼儿园课件)课件.pptx
- 综采工作面安装专项辨识评估报告.docx VIP
- Unit5IntothewildUnderstandingideas教学设计-2024-2025学年高中英语外研版(2019)必修第一册.docx
文档评论(0)