- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 运算符销毁此对象。
“阻塞”方案。
发送和接收计算机之间的字节顺序差异。
您可能关注的文档
最近下载
- 湿热灭菌验证方案及报告.doc VIP
- TZS 0680—2025《医疗机构实验室生物安全管理组织架构规范》(水印版).pdf VIP
- 网络游戏对青少年情绪调节和自我效能感的作用.docx VIP
- YBT4001.1-2019 钢格栅板及配套件 第1部分:钢格栅板.pdf VIP
- 大数据技术与应用 课件 第二章 大数据采集.pptx
- LAQ-E-KS-23 掘进工安全作业指导书.doc VIP
- 连云港市主要小麦品种产量与主要品质性状的初步研 究参考.pdf VIP
- DB32_T 3697-2019既有建筑幕墙可靠性检验评估技术规程.docx VIP
- PW2330-2.0数据手册下载.pdf VIP
- 2025湖南铁道职业技术学院教师招聘考试真题汇总.docx VIP
文档评论(0)