应用c多人聊天室的构建

应用c多人聊天室的构建

ID:28039443

大小:1.53 MB

页数:27页

时间:2018-12-07

应用c多人聊天室的构建_第1页
应用c多人聊天室的构建_第2页
应用c多人聊天室的构建_第3页
应用c多人聊天室的构建_第4页
应用c多人聊天室的构建_第5页
资源描述:

《应用c多人聊天室的构建》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、多人聊天室的构建基于CAsyncSocket类的WindowsSockets编程[提要]本章介绍丫Socket的工作机制和棊于CAsyncSocket类的Sockets编程的基本方法。通过一个应用实例,编写服务端和客户端代码,实现多人之间信息传递。一、TCP/IP体系结构与特点1、TCP/IP体系结构TCP/IP协议实际上就是在物理网上的一组完整的网络协议。其中TCP是提供传输层服务,而1P则是提供网络层服务。TCP/IP包括以下协议:(结构如图1.1)圓FTP圓SMTP圓TELNET圓HTTP圓TFTP個1.1)1P:网间协议(Int

2、ernetProtocol),负责主机间数据的路由和网络上数据的存储。同时为1CMP,TCP,UDP提供分组发送服务。用户进程通常不需要涉及这一层。ARP:地址解析协议(AddressResolutionProtocol),此协议将网络地址映射到硬件地址。RARP:反向地址解析协议(ReverseAddressResolutionProtocol),此协议将硬件地址映射到网络地址ICMP:M间报文控制协议(InternetControlMessageProtocol),此协议处理信关和主机的差错和传送控制。TCP:传送控制协议(Tran

3、smissionControlProtocol),这是一种提供给川户进程的可誰的全双工字节流面向连接的协议。它要为用户进程提供虚电路服务,并为数据可靠传输建立检查。(注:大多数网络用户程序使用TCP)UDP:用户数据报协议(UserDatagramProtocol),这是提供给用户进程的无连接协议,用于传送数据而不执行正确性检查。FTP:文件传输协议(FileTransferProtocol),允许用户以文件操作的方式(文件的增、删、改、查、传送等)与另一主机相互通信。SMTP:简単邮件传送协议(SimpleMai1TransferPr

4、otocol),SMTP协议力系统之间传送电子邮件。TELNET:终端协议(TelnetTerminalProcotol),允许用户以虚终端方式访问远程虫机。HTTP:超文本传输协议(HypertextTransferProcotol)TFTP:简单文件传输协议(TrivialFileTransferProtocol)2、TCP/IP特点TCP/TP协议的核心部分是传输层协议(TCP、L'DP),网络层协议(TP)和物理接口层,这三层通常是在操作系统内核中实现。因此用户一般不涉及。编程时,编程界面有两种形式:一、是由内核心直接提供的系统

5、调用;二、使用以库函数方式提供的各种函数。前者为核内实现,后者为核外实现。用户服务要通过核外的应用程序才能实现,所以要使用套接字(socket)来实现。图1.2是TCP/IP协议核心与应用程序关系阁二、套接字工作方式1、客户机/服务器模式在TCP/IP网络中两个进程间相互作用的主机模式是客户机/服务器模式(Client/Servermodel)。该模式的建立基于以下两点.•1、非对等作用;2、通信完全是异步的。客户机/服务器模式在操作过程屮采取的是主动请示方式:首先服务器方要先启动,并根据请示提供相应服务:(过程如下)①打开一通信通道(

6、端U)并告知本地主机,并在某一个公认地址上接收客户请求;②等待客户请求到达该端口;③接收到重复服务请求,处理该请求并发送应答信号;④返14第二步,等待另一客户请求⑤关闭服务器。客户方:①打开一通信通道,并连接到服务器所在主机的特定端口。②向服务器发送服务请求报文,等待并接收应答;继续提出请求……③请求结束后关闭通信通道并终止。2、典型过程图(1)面向连接的套接字的系统调用时序图服务器方客户方(图1.3)⑵无连接协议的套接字调用时序图(a1.4)三、Windows套接类CAsyncSocket类1、CAsyncSocket类介绍CAsyn

7、cSocket焚封装WindowsSocketsAPT。CAsyncSocket适合那整对网络通信细节丫解,希望利用回调的便利通知网络事件的程序员使用。如果想利用WindowsSockets方便地处理MFC应用程序中的多个网络协议,而又不想放弃灵活性,可以考虑使用CasyncSocket类。其在MFC中的类层次为:CobjectL-CasyncSocket2、CAsyncSocket类的主要成员函数构造函数CasyncSocket:构造CAsyncSocket对象Create:创建套接字属性操作函数:Attach:对CAsyncSock

8、et对象附加套接字句柄Detach:从CAsyncSocket对象除去套接字句柄FroniHandle:返回CAsyncSocket对象的指针,给出套接字句柄GetLastError:获得上一次运行失败的状

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。