25网络编程简介(windows_编程技术).pdf
《25网络编程简介(windows_编程技术).pdf》由会员分享,可在线阅读,更多相关《25网络编程简介(windows_编程技术).pdf(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第 25252525章章 网络编程简介网络编程简介这里所说的网络主要是指因特网(Internet)。本章先介绍网络与编程的一些基本概念,然后重点讲解 Socket 的 MFC 与 C#编程和 ASP.NET 的 Web 编程。25.125.125.125.1网络与编程网络与编程网络与编程网络与编程本节先介绍网络发展的简史,再给出两种主流的分层网络模型,然后讨论与网络编程有关的接口和技术等基本内容。25.1.125.1.125.1.125.1.1因特网与万维网因特网与万维网因特网(Internet,网际网/互联网)的前身是 1969 年底启用的 ARPANet(AdvancedResearc
2、h ProjectsAgency Network,美国国防部高级研究计划署网络,阿帕网),由 BobTaylor和 Larry Roberts 等人主持研制。1973 年底,Robert E.Kahn 和 Vinton Cerf 提出了基于包交换的两个网络协议 IP(Internet Protocol,网际协议)和 TCP(Transmission Control Protocol,传输控制协议),1983 年元旦 ARPANet 启用 TCP/IP 协议集。1986 年,ARPANet 的主干网被 NSFNet(National ScienceFoundation Network,美国国家科
3、学基金会网络)接替,并改名为 Internet(因特网),1991 年起对社会开放。1990 年 10 月在 CERN(Conseil Europeen pour la RechercheNucleaire,欧洲粒子物理研究所)工作的TimBerners-Lee 提出了因特网应用层的两个协议:用于描述网页的 HTML(HyperText Markup Language,超文本标记语言)和用于传输网页文档和各种资源数据的HTTP(Hypertext Transfer Protocol,超文本传输协议),创立了万维网(World WideWeb,WWW,环球网),一般简称为 Web(蜘蛛网),We
4、b 网很快成为因特网的主体。1993 年初,美国 Illinois(伊利诺)大学的硕士研究生 Marc Anderressen 与 Eric Bina 合作在位于该校内的 NCSA(National Center for Supercomputing Applications 美国超级计算应用中心)开发出支持内嵌图像的网页浏览器马赛克(Mosaic),1994 年 10 月 Anderressen 等人创办的网景公司 Netscape推出了 Navigator 浏览器,得到广泛使用,大大推动了互联网的普及。1995 年微软公司从伊利诺大学购得马赛克技术,并在此基础上开发出 IE(Interne
5、tExplorer,因特网探索者)浏览器,随 Windows 95 免费推出。1994 年 10 月 Berners-Lee 创立了万维网联盟(World Wide Web Consortium,W3C),负责万维网的管理和技术标准的制定。1998 年 2 月 W3C 推出了划时代的 XML(eXtensibleMarkup Language,可扩展标记语言),2000 年 1 月又推出了用来替代 HTML 的 XHTML(Extensible HTML,扩展的 HTML)。传统的万维网 Web 正在向新的万维网 One Web 过渡,参见图 25-1。2图 25-1Web 体系结构的发展其中
6、:URL(Uniform Resource Locator,统一资源定位符)在因特网的 Web 服务程序上用于指定信息位置的表示方法,如 http:/ Resource Identifier,统一资源标识符)=URL+URN。URN(Uniform Resource Name,统一资源命名)使用 urn 方案的 URI,不一定意味着有确定的资源可用。如 urn:isbn:0451450523。IRI(Internationalized Resource Identifiers,国际化资源标识符)URI的国际化,支持 Unicode。25.1.225.1.225.1.225.1.2IPIPIPI
7、P 网络的分层与协议网络的分层与协议这里的IP网络是指基于因特网协议套件(TCP/IP协议栈)的网络,包括:因特网(Internet)、城域网(MetropolitanAreaNetwork,MAN)和内部网(Intranet)等。为了便于分析和管理,一般将通信网络抽象为若干层。主要有 ISO(和 IEC 共同)制定的 7 层参考模型(ReferenceModel)ISO/OSI(国际标准,失败,主要用于理论研究)和因特网5层参考模型 TCP/IP协议栈(实事标准,成功,应用十分广泛)。参见表25-1和图25-2&3。表 25-1ISO/OSI 7 层参考模型OSIOSIOSIOSI 模型模型
8、数据单元数据单元层层功能功能主机层主机层数据7.应用对应用的网络过程6.表示数据表示与加密5.会话主机间通信段4.传输端到端连接与可靠性(TCP)介质层介质层包/数据报3.网络路径确定与逻辑寻址(IP)帧2.数据链接物理寻址(MAC&LLC)位1.物理介质,信号与二进制传送3其中:ISO(International Organization for Standardization,国际标准化组织)由 153 个国家的国家标准学会联合组成的一个非政府国际组织,总部(中央秘书处)设在瑞士的日内瓦,负责制定适应商业和广泛社会需要的各种国际标准,网址为 http:/www.iso.org。IEC(In
9、ternational Electrotechnical Commission,国际电工技术委员会)一个成立于 1906 年 6 月的国际标准化权威组织,属于联合国的甲级咨询机构,负责制定关于电工电子各方面的标准,有 42 个会员国,总部也设在瑞士的日内瓦,网址为 http:/www.iec.ch。OSI(Open Systems Interconnection,开放系统互连)一种通信协议的 7 层抽象的参考模型,其中每一层执行某一特定任 务。该模型的目的是使各种硬件在相同的层次上相互通信。对应的国际标准为:ISO7498:1984、ISO/IEC 7498-14:1994、1989、1989
10、、1997)。MAC(Media Access Control,介质访问控制)数据链路层的子层,提供寻址和信道访问的控制机制,位于物理层和逻辑链路层之间。LLC(Logical Link Control,逻辑链路控制)数据链路层的上部子层,在 MAC层上传输的多路复用和分离协议,提供流量和差错控制。ISO/OSI7 层参考模型因特网 5 层参考模型(及协议)应用层(Application)应用层(HTTP/HTML、FTP、SMTP/POP3/IMAP、)表示层(Presentation)会话层(Session)传输层(Transport)传输层(TCP/UDP)网络层(Network)互连网
11、层(IP/ICMP/IGMP)数据链路层(Data-link)网络接口层(ARP/RARP)物理层(Physical)物理层图 25-2OSI 与因特网参考模型的层次对应关系其中:ARP(AddressResolution Protocol,地址解析协议)计算机用来匹配 IP 地址到硬件地址的协议。计算机调用 ARP 广播一个请求,目标计算机应答该请求。RARP(Reverse AddressResolution Protocol,逆向地址解析协议)计算机系统在自举时获取 IP地址的协议。IP(Internet Protocol,网际协议)定义互联网上包的格式与路由包到其目的地之机制。ICMP
12、(Internet ControlMessage Protocol,互连网控制消息协议)提供网络层的控制手段和差错报告。IGMP(Internet Group Management Protocol,互连网组管理协议)用来管理组播的,它是参加组播的主机与路由器之间交换组员信息的协议。不过,组播目前存在多个组的地址冲突问题,而且,现有的路由器一般不支持组播。TCP(Transmission Control Protocol,传输控制协议)为应用程序提供访问面向连接的通信服务,可靠、控制流量。特点:面向连接、累计确认与超时重传(保证数据传输的可靠性)、拥塞控制(基于滑动窗口协议)、报头变长(24B
13、)。UDP(User Datagram Protocol,用户数据报协议)为用户提供无连接的服务,高效但不可靠,主要用于传输多媒体数据。特点:无连接、无差错控制(不重传)、报头中的校验和可选(可不计算和存储)、报头定长(8B)。FTP(File Transfer Protocol,文件传输协议)因特网上管理文件传输的通讯协议,用于从一台计算机到另一台计算机传送完整的文件。SMTP(Simple Message Transfer Protocol,简单邮件传输协议)用于电子邮件的传输。POP3((Post Office Protocol,邮局协议第三版)提供用户计算机对(本地邮件服务器中的)电子
14、邮4箱进行远程存取的脱机协议。IMAP(Internet Message Access Protocol,因特网消息访问协议)提供用户计算机对(本地邮件服务器中的)电子邮箱进行远程操作的联机协议。图 25-3IP网络模型25.1.325.1.325.1.325.1.3因特网编程因特网编程通用的因特网编程,一般采用传统的套接字(Sockets)网络 API,在 Windows 平台中对应的是 Winsock。微软还自己开发了用于因特网应用层的编程接口 WinInet。1Sockets 和 Winsock因特网(Internet)最初是基于 Unix 的,而 Sockets(套接字/插座)是 Un
15、ix 第一个支持TCP/IP 协议栈的网络 API,最早于 1982 年 8 月随 4.2 BSD 版 Unix 推出,常被称为 Berkeleysockets(伯克利套接字)。Unix 的 BSD(Berkeley SoftwareDistribution,美国加州大学伯克利分校软件分发)版,是由 Sun 公司的创始人之一兼首席技术官 Bill Joy(比尔乔伊)于 1977 年在伯克利分校读研期间自己开发的。Sockets 也是由他编写的。Winsock(Windows Sockets API)是从 Sockets 移植过来的TCP/IP 编程的低级 WindowsAPI,由 JSB 公司
16、的 Martin Hall、Sun公司的 Mark Towfiq 和 Geoff Arnold、微软公司的 Henry Sanders和 J Allard 等人共同开发。Winsock 的版本有:1.0(1992 年 6 月,微软不支持)1.1(1993 年 1 月,微软在 Windows forWorkgroups 3.1 的扩展包中支持,该扩展包也是 Windows95 和 Windows NT 3.x 的组成部分)2(1994 年,未公开发布)图 25-4Bill Joy52.1.0(1996 年 1 月,首个公开发布的 Winsock 2 规范,微软在 Windows95 的扩展包中支
17、持,该扩展包也是 Windows98 和 WindowsNT 4.0 及后续 Windows版本的组成部分)2.2.0(1996 年 5 月,去掉了对 16 位 Windows 应用程序的支持)2.2.1(1997 年 5 月)2.2.2(1997 年 8 月)在 Windows 中,除了可以直接用 Winsock API 进行 C/C+编程外,还可以用 Winsock的 MFC 和.NETBCL 封装进行面向对象和组件的编程。MFC 封装的 Winsock 类有:基本的异步套接字类 CAsyncSocket 和简单的套接字类CSocket。为了使用 Winsock 编程,程序员得详细了解因特
18、网应用层的具体协议内容。2WinInet使用 Winsock 编程,程序员必须与基本的网络通信打交道,还必须详细了解因特网应用层协议的具体内容,包括对话模式、命令的组成和格式、命令发送的顺序等等。为了方便因特网应用程序的编写,微软在 Winsock 之外,还自己开发了用于因特网应用层编程的接口 WinInet(Win32 Internet Extensions,32 位 Windows 的因特网扩展)。WinInet 的优点:支持高速缓存似 IE,将 HTML 和其他因特网文件放入本地磁盘的特定目录,下次可直接加载该文件,而不是重复从因特网下载安全支持基本的质询/响应鉴别和 SSL(Secur
19、e Socket Layer 安全套接字层)采用缓冲 I/Oread 函数不返回值,可读取单独的文本行简单可使用状态回调函数 OnStatusCallBack 来对 UI 更新和注销;调用一个函数 CInternetSession:OpenURL 就可以找到 IP 地址、建立连接并准备好文件读取友好可分析和格式化报头,访问已经被移动的新位置处的服务器和文件MFC 也包括了对 WinInet 的封装,提供了一些十分好用的类与全局函数,包括对 HTTP、FTP、Gopher 等协议的处理。25.1.425.1.425.1.425.1.4万维网编程万维网编程万维网是因特网的主体,主要由 HTTP 和
20、 HTML 两个协议组成,参见图 25-1。传统的C/S(Client/Server,客户/服务器)结构,也正在被 B/S(Browser/Server,浏览器/服务器)结构所代替。基于浏览器的应用程序(瘦客户端,thin client 或leanclient),正在逐步取代基于窗口的网络应用程序(胖客户端,fat client 或 rich client)。所以网络编程的重点是万维网的编程。浏览器(browser)是用来显示和操作 Web 网页(page)的一种应用程序。1HTML最初,万维网的网页是全文本(所以才叫超文本),后来才引入图片和各种多媒体信息。6HTML(HyperText M
21、arkup Language,超文本标记语言),是书写 Web 文档的一套语法规范,由万维网的发明人 Tim Berners-Lee于 1990 年设计。1 1 1 1 特点特点是一种描述文档的标记语言,用标签(tag)来说明文档的内容与格式;源自 SGML,是其应用与简化。其中,SGML(StandardGeneralized Markup Language,标准通用化标记语言)是现代标记语言的鼻祖,为国际标准(ISO/IEC8879:1986);支持超链接;支持 C/S 交互(如表单、JavaScript、JavaApplet);基于 HTTP,与平台无关。2 2 2 2 版本版本HTML
22、 的版本有:(圆括号内为制定者)0.91990.10.基本超文本。(Berners-Lee&Connolly)1.01992.1.内嵌图、文字格式。(CERN)2.01995.11.表单。(IETF:RFC 1866)3.01996.数字、表格、控件。未公开、未标准化。(W3C)3.2REC:1997.1.14.规范对 Applet、脚本和颜色的支持。(W3C:REC 标准)4.0REC:1997.12.18(1998.4.24推出修订版).提倡结构与外观的分离,支持CSS(Cascading Style Sheets,层叠样式表单),提高了对(动态)页面的控制能力、改进外观和功能、支持多语言
23、文档。(W3C:REC 标准)4.01REC:1999.12.24.对 4.0 的修正与补充,如更新样式表单、添加内容短表、修正文档脚本等。(W3C:REC 标准)5.0WD:2008.1.22.副标题为HTML 和 XHTML 的词汇和关联 API。在此版本中,为帮助 Web 应用的开发者而引入了许多新特性,并基于主流开发实践而引入了许多新元素,而且还为努力改进交互性的用户代理而定义清晰的顺应标准给予了特别关注。HTML5 最初由 Apple、the Mozilla Foundation 和 OperaSoftware于 2004年联合成立的 WHATWG 发起制定(注意微软没有参加),后来
24、纳入 W3C 标准计划,从2007年11月8日开始频繁推出与WHATWG草案同步的W3C编辑草案(W3CEditors Draft)和若干 W3C 自己的工作草案(W3C Working Draft)(W3C:WD)3 3 3 3 XHTMLXHTMLXHTMLXHTMLW3C 想用 XHTML 来代替 HTML(上面的 HTML5 实际上也是 XHTML5),XHTML 的版本有:1.0XHTML1.0:TheExtensibleHyperTextMarkupLanguageAReformulation of HTML 4inXML,REC:2000.1.26(可扩展超文本标记语言,基于XM
25、L 的 HTML,HTML4 的 XML 重写);1.0(Second Edition)REC:2002.8.1;1.1XHTML1.1-Module-based XHTML,REC:2001.5.31(基 于 模 块 的XHTML),其第 2 版仍在开发过程中:1.1(Second Edition)WD:2007.2.16;2.0XHTML2.0,WD8:2006.7.26(针对丰富、移动的基于 Web 的应用,不向后兼容);5.0与 HTML 5 等价。从 HTML 到 XHTML 的各种版本演化,可参见图 25-6。图 25-5TimBerners-Lee7应用应用CSS多语言内嵌图文字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 25 网络 编程 简介 windows_ 技术
限制150内