简单聊天室分析.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
简单聊天室分析

中北大学 程序设计 课程设计说明书 学生姓名: 学 号: 学 院: 专 业: 题 目: 指导教师: 职称: 2013年 12 月 26 日 目录 1.设计的背景及意义、聊天室的设计目标 2 2.基本原理 4 2.1 Winsock编程 4 2.2 MFC类CAsyncsocket和CSocket 5 2.3 利用CSocket进行有连接的通信 6 3.基本过程 8 3.1客户端的实现 8 3.2服务端的实现 13 4.程序运行结果 20 4.1 服务器端 20 4.2 客户端 20 5.总结和结论 22 1.1课程设计的背景 当前是数字信息时代,网络时代,任何一种编辑工具都不能忽视在网络上的应用,并且随着Internet 的普及和宽带技术的成熟,越来越多的用户进入网络世界中享用浏览新闻、查询信息、发送邮件、在线观看电影等服务,享受网络带来的便利和办公的高效,与此同时一个新型的Web应用程序为网民之间提供了一个实时通信的功能和场所,这就是聊天室。 在网络早期就开始盛行,不论是BBS,IRC 都有类似网上聊天室的机制。聊天室为网友提供了实时性对话的渠道,是网络上极为流行的一项服务。 聊天室适用于网上会议或闲聊的一些场合。聊天室为网友提供了较好的交友环境,网友之间相互以文字交谈,在形式上有点类似笔友的性质,却大大节省了书信往返的时间,这也是网上交友之所以如此热门的原因。 1.2课程设计的意义 客户端界面上的两个文本框,一个用于显示接受的聊天信息,一个用来接受用户输入的聊天信息。当按下“发送”按钮时将信息发送给服务器。 1.3聊天室的设计目标 本课题是建立聊天通信模型,设计一个聊天室软件,包括服务器端和客户端,主要功能为: 服务器端功能: 1、 初始化socket, 创建服务器端。 2、 维护一个链表,保存所有用户的IP地址、端口信息。 3、 接受用户传送来的聊天信息,然后向链表中的所用用户转发。 4、 接受用户传送来的连接判断命令,并向用户发出响应命令。 客户端功能: 2.基本原理 2.1 Winsock编程 Windows Sockets规范以U.C. Berkeley大学BSD UNIX中流行的Socket接口为范例定义了一套Micosoft Windows下网络编程接口。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。 ? ? Windows Sockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。此外,在一个特定版本Windows的基础上,Windows Sockets也定义了一个二进制接口(ABI),以此来保证应用Windows Sockets API的应用程序能够在任何网络软件供应商的符合Windows Sockets协议的实现上工作。因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。 构造一个 CAsyncSocket(嵌套字) 对象并使用该对象创建基础 SOCKET 句柄。 套接字的创建遵循两阶段构造的 MFC 模式。 例如: CAsyncSocket sock;sock.Create( ); // Use the default parameters 对于服务器套接字,必须指定端口。对于客户端套接字,通常接受此参数的默认值,该值允许 Windows Sockets 选择端口。 套接字类型: SOCK_STREAM (默认值)或 SOCK_DGRAM 。 套接字“地址”,如“”或“”。 该地址为网络上的网际协议 (IP) 地址。很可能要始终依赖此参数的默认值。 如果套接字是客户端,则使用 CAsyncSocket::Connect 将此套接字对象连接到服务器套接字。 销毁 CAsyncSocket 对象。 如果在堆栈上创建了套接字对象,当包含函数超出范围时将调用此对象的析构函数。如果使用 new 运算符在堆上创建了套接字对象,则必须负责使用 delete 运算符销毁此对象。

文档评论(0)

441113422 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档