下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1章VisualC++网络编程概述VisualC++〔后面简写为VC〕网络编程是指用户使用MFC类库〔微软根底类库〕在VC编译器中编写程序,以实现网络应用。用户通过VC编程实现的网络软件可以在网络Windows操作系统的网络编程根底学问,其开发环境是VC。在VC编译器中,使用WindowsSocket进展网络程序开发是网络编程中格外重要的一局部。网络根底学问假设用户要进展VC网络编程,则必需首先了解计算机网络通信的根本框架和工作原理。在两台或多台计算机之间进展网络通信时,其通信的双方还必需遵循一样的通信原则和数据格式。本节将向用户介绍OSI七层网络模型、TCP/IP协议以及C/S编程模型。OSI七层网络模型OSI网络模型是一个开放式系统互联的参考模型。通过这个参考模型,用户可以格外直观地了解网络通信的根本过程和原理。OSI1.1所示。图1.1 OSI七层网络模型1章VisualC++网络编程概述用户从OSI网络模型可以很直观地看到,网络数据从发送方到达接收方的过程中,数据的流向以及经过的通信层和相应的通信协议。事实上在网络通信的发送端,其通信数据每到一个通信层,都会被该层协议在数据中添加一个包头数据。而在接收方恰好相反,数据通过每一层时都会被该层协议剥去相应的包头数据。用户也可以这样理解,即网络模型OSI1.1所示。协议层名网络层会话层
表1.1 各网络层的功能功能概述将传输数据进展压缩与加压缩进展信息的网络传输建立物理网络的连接应用程序接口留意:在表1.1中列出了OSI七层网络模型中各层的根本功能概述。用户依据这些根本的功能概述会对该网络模型有一个比较全面的生疏。TCP/IP协议TCP/IP协议实际上是一个协议簇,其包括了很多协议。例如,FTP〔文本传输协议〕、SMTP〔邮件传输协议〕等应用层协议。TCP/IP4层,包括数据链路1.2所示。TCP/IP1.2所示。
图1.2 TCP/IP网络协议模型1.2TCP/IP网络协议各层功能协议层名功能概述网络层数据传输层网卡等网络硬件设备以及驱动程序IP协议等互联协议为应用程序供给通信方法,通常为TCP、UDP协议应用层负责处理应用程序的实际用于层协议在数据传输层中,包括了TCPUDP协议。其中,TCP协议是基于面对连接的牢靠UDPUDP协议发送一条消息时,并不知道该消息是否已经到达接收方,或者在传输过程中数据已经丧失。UDP协议在对一些对时间要求较高的网络数据传输方面有着重要的作用。·3·1篇VisualC++网络编程根底C/S编程模型C/SIP地址以及端口进展通信。否则,通信过程将无法实现。通常状况下,当用户使用C/S模型进展通信时,其通信的任意一方称为客户端,则另一方称为效劳器端。效劳器端等待客户端连接恳求的到来,这个过程称为监听过程。通常,效劳器监听功IP恳求则连接成功。否则,客户端的连接恳求失败。C/S1.3所示。图1.3 C/S编程模型IPIP地址和端口必需是固定的。在这里,向用户介绍局部协议所使用的端口号码。例如,协议〔网页扫瞄效劳〕80,FTP协议〔文本传输〕所21。留意:用户在实际编程中,通信双方的连接以及数据通信均是基于Socket〔套接字〕进展的。网络编程根底MFC中封装的套接字类进展编程,也可以使用WindowsAPIMFC使用MFC相关类编程会使用户对网络通信中的根本原理没有清楚的生疏WindowsAPI函数则恰好相反,可以使用户生疏网络通信的根本原理。·4·1章VisualC++网络编程概述Sockets套接字Windows中编写网络通信程序时,需要使用WindowsSockets〔Windows套接字〕Windows套接字相关的APIWinsock函数。IP地址和端口号相关联。通常,套接字主要有两种类型,分别是流式套接字〔SOCK_STREAM〕和数据报套接字〔SOCK_DGRAM〕。其中,流式套接字是特地用于使用TCP协议通信的应用程序中,而数据报套接字则是特地用于使用UDP协议进展通信的应用程序中。网络字节挨次网络字节挨次是指TCP/IP协议中规定的数据传输使用格式,与之相对的字节挨次是主机字节挨次。网络字节挨次表示首先将数据中最重要的字节进展存储。例如,当数据0x3584570x350x840x57。由于通信数据可能会在不同的机器之间进展传输,所以通信数据必需以一样的格式进展整理。只有经过格式处理的通信数据,才能在不同的机器之间进展传输。在Winsock中,已经供给了相关的函数处理网络字节挨次的相关问题,这些学问将在2章中具体讲解。WindowsSockets介绍MFC类库中,几乎封装了WindowsSockets的全部功能。在本节中,将向用户介绍两个主要的套接字相关类,分别是CAsyncSocketCSocket类。CAsyncSocket类在微软根底类库中,CAsyncSocket类封装了异步套接字的根本功能。用户使用该类进展网络数据传输的步骤如下:调用构造函数创立套接字对象。假设创立效劳器端套接字,则调用函数Bind绑定本地IP和端口,然后调用函数Listen监听客户端的恳求。假设恳求到来,则调用函数Accept响应当恳求。假设创立客户端套接字,则直接调用函数Connect连接效劳器即可。调用Send等功能函数进展数据传输与处理。关闭或销毁套接字对象。留意:在MFC中,全部类中均有一个变量m_hWnd表示该类的实例句柄。CSocket类CSocket类派生于CAsyncSocketCAsyncSocket类的根本功能,还·5·1篇VisualC++网络编程根底CSocketCSocketFileCArchive类一起使用,能够很好地治理数据以及发送数据。用户使用该类进展网络编程的步骤如下:CSocket类对象。假设创立效劳器端套接字,则调用函数Bind绑定本地IP和端口,然后调用函数Listen监听客户端的恳求。假设恳求到来,则调用函数Accept响应当恳求。假设创立客户端套接字,则直接调用函数Connect连接效劳器即可。CSocket类对象相关联的CSocketFile类对象。CSocketFileCArchive对象。使用CArchive类对象在客户端和效劳器之间进展数据传输。关闭或销毁CSocket类、CSocketFileCArchive3个对象。小 结本章向用户介绍了网络编程有关的网络模型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拖拉机燃油喷射系统装试工岗前协同配合考核试卷含答案
- 玻璃加工工岗位协同配合考核试卷含答案
- 富集工班组建设知识考核试卷含答案
- 兽用中药制剂工岗中安全生产规范考核试卷含答案
- 中考满分作文精彩语段
- 运动营养师技术理论评优考核试卷含答案
- 纺丝凝固浴液配制工班组考核知识考核试卷含答案
- 第六单元测试卷学年统编版六年级上册语文
- 《史记》中的成语
- 新学期计划思想报告(3篇)
- 2025年北京市丰台区教育系统事业编人员招聘笔试试题及答案详解
- 2025年中级会计经济法真题及答案解析一
- 2026 年秋季高二开学第一课高中生家庭劳动实践主题班会
- 2026小学语文新教材培训:新修订教材衔接教学建议
- 警察心理学课件
- 农作物植保员职业技能竞赛题库及答案
- 汽车使用性能与检测(第三版)全套课件
- 《社区康复》课件-第二章 社区康复的内容
- JCT 929-2023 叶蜡石 (正式版)
- 部编人教版五年级上册语文全册教学课件
- 呼吸机操作考核标准评分表
评论
0/150
提交评论