应用C++多人聊天室的构建.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
应用C多人聊天室的构建

多人聊天室的构建 ——基于CAsyncSocket?类的Windows?Sockets编程]本章介绍了Socket的工作机制和基于CAsyncSocket?类的Sockets编程TCP/IP 体系结构与特点 1、TCP/IP体系结构 TCP/IP协议实际上就是在物理网上的一组完整的网络协议。其中TCP是提供传输层服务,而IP则是提供网络层服务。TCP/IP包括以下协议:(结构如图1.1) (图1.1) IP:网间协议(Internet Protocol)负责主机间数据的路由和网络上数据的存储。同时为ICMP,TCP,UDP提供分组发送服务。用户进程通常不需要涉及这一层。ARP:地址解析协议(Address Resolution Protocol)此协议将网络地址映射到硬件地址。RARP:反向地址解析协议(Reverse Address Resolution Protocol)此协议将硬件地址映射到网络地址ICMP:网间报文控制协议(Internet Control Message Protocol)此协议处理信关和主机的差错和传送控制。TCP:传送控制协议(Transmission Control Protocol)这是一种提供给用户进程的可靠的全双工字节流面向连接的协议。它要为用户进程提供虚电路服务,并为数据可靠传输建立检查。(注:大多数网络用户程序使用TCP)UDP: 用户数据报协议(User Datagram Protocol)这是提供给用户进程的无连接协议,用于传送数据而不执行正确性检查。FTP: 文件传输协议(File Transfer Protocol)允许用户以文件操作的方式(文件的增、删、改、查、传送等)与另一主机相互通信。SMTP: 简单邮件传送协议(Simple Mail Transfer Protocol)SMTP协议为系统之间传送电子邮件。TELNET:终端协议(Telnet Terminal Procotol)允许用户以虚终端方式访问远程主机HTTP: 超文本传输协议(Hypertext Transfer Procotol)TFTP: 简单文件传输协议(Trivial File Transfer Protocol) 2、TCP/IP特点TCP/IP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中实现。因此用户一般不涉及。编程时,编程界面有两种形式:一、是由内核心直接提供的系统调用;二、使用以库函数方式提供的各种函数。前者为核内实现,后者为核外实现。用户服务要通过核外的应用程序才能实现,所以要使用套接字(socket)来实现。 图1.2是TCP/IP协议核心与应用程序关系图。 首先服务器方要先启动,并根据请示提供相应服务:(过程如下) ① 打开一通信通道(端口)并告知本地主机,并在某一个公认地址上接收客户请求; ② 等待客户请求到达该端口; ③ 接收到重复服务请求,处理该请求并发送应答信号; ④ 返回第二步,等待另一客户请求 ⑤ 关闭服务器。 客户方: ① 打开一通信通道,并连接到服务器所在主机的特定端口。 ② 向服务器发送服务请求报文,等待并接收应答;继续提出请求…… ③ 请求结束后关闭通信通道并终止。 2、典型过程图 (图1.) ⑵ 无连接协议的套接字调用时序图 (图1.) 三、Windows套接类——CAsyncSocket类 1、CAsyncSocket类介绍 CAsyncSocket 类封装 Windows Sockets API。 CAsyncSocket 适合那些对网络通信细节了解,希望利用回调的便利通知网络事件的程序员使用。如果想利用 Windows Sockets 方便地处理 MFC 应用程序中的多个网络协议,而又不想放弃灵活性,可以考虑使用 CasyncSocket类。其在MFC中的类层次为: Cobject └CasyncSocket 2、CAsyncSocket类的主要成员函数 构造函数CasyncSocket:构造CAsyncSocket对象 Create:创建套接字 Attach:对CAsyncSocket对象附加套接字句柄Detach:从CAsyncSocket对象除去套接字句柄FromHandle:返回CAsyncSocket对象的指针,给出套接字句柄GetLastError:获得上一次运行失败的状态GetPeerName:获得与套接字连接的对等套接字的地址GetSockName:获得套接字的本地名GetSockOpt:获得套接字选项SetSockOpt:设置套接字选项Accept:接受套接字上的连接AsyncSelect:请求对于套接字的事件通知Bind:与套接字有关的本地地址Close:关闭套接字Conne

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档