利用MFC进行网络编程NetworkProgrammingwithMFC.ppt
《利用MFC进行网络编程NetworkProgrammingwithMFC.ppt》由会员分享,可在线阅读,更多相关《利用MFC进行网络编程NetworkProgrammingwithMFC.ppt(48页珍藏版)》请在三一文库上搜索。
1、利用MFC进行网络编程 Network Programming with MFC,Prof. Xiao-jie Yuan,内容提要,网络基础知识 MFC网络编程 Windows套接字 CAsyncSocket类 TCP协议编程 聊天室客户端 聊天室服务器端 程序功能演示,网络基础知识,/,网络基础知识:对TCP/IP协议进行简要介绍,网络基础知识,TCP/IP协议,Windows的网络通信建立在TCP/IP协议的基础上 TCP/IP协议族包含一系列构成互联网基础结构的网络协议 TCP/IP字面上代表两个重要协议 TCP: 传输控制协议 IP: 网际协议,网络基础知识,TCP/IP参考模型,TC
2、P/IP参考模型包括4层: 主机至网络层(Host-to-network) 互联层(Internet) 传输层(Transport) 应用层(Application),网络基础知识,TCP/IP模型与OSI模型,应用层,表示层,传输层,网络层,数据链路层,物理层,会话层,应用层,传输层,互联层,主机至网络层,OSI,TCP/IP,网络基础知识,几个典型的协议,IP协议(互联层) 是一个路由协议,负责IP寻址、数据包的分片和重组等任务 TCP协议(传输层) 提供一对一有连接的通信服务 提供连接的确认,数据包发送/接收顺序的控制,出错重传等机制 保证数据在传输中的正确性 HTTP协议(应用层) 用
3、于传送Web网页文件,网络基础知识,数据包的封装,应用层,传输层,互联层,主机至网络层,TCP/IP模型,应用程序,HTTP协议,TCP协议,IP协议,网卡驱动,以太网首部,IP首部,TCP首部,HTTP首部,用户数据,以太网尾部,IP首部,TCP首部,HTTP首部,用户数据,TCP首部,HTTP首部,用户数据,HTTP首部,用户数据,用户数据,使用协议,封装的数据包,MFC网络编程,/,MFC网络编程:Windows套接字,Windows套接字,什么是套接字,套接字是一种网络编程接口 英文:socket 字面意思:插座、插口 可以形象地将套接字理解为应用程序与网络协议之间的插口,也就是编程接
4、口 套接字在TCP/IP模型中位于传输层之上 主要针对TCP、UDP协议进行抽象 不涉及应用层协议,Windows套接字,套接字在TCP/IP模型中的位置,主机至网络层,互联层,IP,ARP,ICMP,IGMP,传输层,TCP,UDP,应用层,套接字 Sockets,Windows套接字,套接字是网络通信的端点,在网络中,主机H1上的一个套接字端点(endpoint)可以和主机H2上的另一个套接字端点进行通信 IP地址和端口号可以唯一确定一个套接字,Windows套接字,Windows套接字,套接字的概念最初是由BSD Unix操作系统所实现的 Microsoft将Unix套接字中的大部分函数
5、移植到Windows操作系统,形成了Windows套接字 Windows套接字针对Windows操作系统的消息驱动机制,对原有的Unix套接字进行了扩展,定义了一部分新的函数,Windows套接字,在MFC中使用Windows套接字,使用MFC提供的Windows套接字功能 可以利用面向对象的概念进行网络编程 比直接调用Win32 API更方便、更直观 MFC中与套接字功能有关的类包括: CAsyncSocket类: 对套接字API进行了较低级别的封装 CSocket类: 对套接字API进行了较高级别的封装 CSocket类是CAsyncSocket类的派生类,Windows套接字,套接字类的
6、层次,CObject,CAsyncSocket,CSocket,/,MFC网络编程:CAsyncSocket类,CAsyncSocket类,CAsyncSocket类,虽然对Windows Sockets API的封装级别较低 但该类为网络通信程序的开发提供了很大的灵活性 可以对一些有关网络协议的具体选项参数进行设定,CAsyncSocket类,CAsyncSocket类,CAsyncSocket类只将套接字的通知消息改进为C+语言中的可重载的消息处理函数 没有像CSocket那样引入文件、文档、串行化等其他额外的概念,这使编程变得更加简洁方便,CAsyncSocket类,创建CAsyncSo
7、cket类对象,CAsyncSocket类对象代表网络通信端点 采用两步构造法: 1、定义CAsyncSocket类对象变量 CAsyncSocket sock; 2、调用Create成员函数进一步创建该对象 sock.Create();,CAsyncSocket类,套接字的种类,流套接字(stream socket) 使用TCP协议进行通信 具有TCP协议所拥有的各种特征 面向连接的、可靠的数据流传输服务 数据包不会出现丢失、重复、乱序等现象 数据报套接字(datagram socket) 使用UDP协议进行通信 具有UDP协议所拥有的各种特征 面向非连接的、不可靠的用户数据报传输服务 数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 MFC 进行 网络 编程 NetworkProgrammingwithMFC
链接地址:https://www.31doc.com/p-2589259.html