- 1、本文档共43页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2讲协议软件接口精要
* Windows Socket API中主要包括两大组件: 1)开发组件 顾名思义,开发组件就是供程序员在开发基于Windows Socket的网络应用程序时使用的; 具体包括三类信息:一些文档(介绍Windows Socket的实现)、Windows Socket应用程序接口函数的导入库、一些头文件; 其中Winsock.h这个头文件中包括了WinSock实现所定义的宏、常数值、数据结构和函数的调用接口原型,因此所有基于WinSock实现的网络应用程序都必须包含这个头文件。 对于WinSock2.0版来说,这个头文件是Winsock2.h。 2)运行组件 头文件WinSock.h中只包括了WinSock功能函数的调用接口的定义,而这些功能函数的具体实现却在另一个文件,即Windows环境下的网络应用程序接口的动态链接库DLL,其文件名为Winsock.dll; 因此,应用程序在执行时必须装入相应的lib文件(即Winsock.lib),才能使用Winsock.dll实现网络通信功能; 对于WinSock2中相应的动态连接库是WS2_32.DLL(后缀32表示是在32位Windows环境),所装入的lib库是WS2_32.lib。 * WinSock对Berkeley Socket所作的扩充主要包括以下几个方面: 1)提供了一种的异步选择机制:该机制可以提供基于消息机制的网络事件选择。 当使用异步选择机制登记的网络事件发生时,Windows应用程序中相应的窗口就会接收到一个消息,这个消息中就指示了发生的网络事件,以及与该事件相关的一些信息。 2)异步请求函数 增加了异步请求服务函数WSAAsyncGetXByY()之类的函数,例如GetHostByName 、GetHostByAddr 、GetServByPort等;这些函数允许应用程序采用异步方式获取所请求的信息,并且在请求的服务完成时会给应用程序相应的窗口发送一个消息。 ③ 阻塞处理方法 Windows Socket中还实现了对阻塞的处理方法,即当一个应用程序的套接字处于阻塞状态时,系统会使该进程放弃CPU让其它应用进程来运行。 * WinSock对Berkeley Socket所作的扩充主要包括以下几个方面: 4)增加了对出错的处理功能: 例如, 函数WSAGetLastError可以获取最近发生的错误的编号;函数WSASetLastError可以为最近发生的错误设置一个的编号。 5)增加了启动WinSock和终止WinSock的功能 在使用任何Windows Socket API的功能函数之前,必须先调用启动函数WSAStartup(),该函数负责完成:Windows Sockets DLL的初始化,协商版本支持,并分配必要的资源。 当应用程序完成了对Windows Socket API的使用之后,必须调用函数WSACleanup(),该函数负责将Windows Socket实现中与这个应用程序相关的信息注销掉,并释放为该应用进程分配的所有资源。 * Windows socket软件1.1版中的库函数主要包括3类函数: 前两类函数:是Windows套接字软件对Berkeley Socket提供的API函数的移植; 后一类函数:是为了适应Windows环境下的网络程序设计而进行的特别扩充。 * 套接字相关的函数可以进一步细分成好几类: 第一类是与套接字相关的最基本的几个函数,完成套接字的创建、关闭以及对套接字的命名和名字获取等功能。 * 第二类是用于套接字进行网络连接的函数,完成网络连接的建立和关闭等功能; * 第三类是用于套接字进行网络数据传输的函数,可以实现数据的发送和接收等功能。 * 第四类:就是刚才我们介绍过的用于进行字节顺序转换的函数,可完成一个二进制整数的主机字节顺序和网络字节顺序之间的转换 * 第五类是:刚才也介绍过了,即IP地址的不同表示形式的转换函数,完成IP地址点分十进制形式与二进制整数形式之间的转换; * 第六类:控制套接字的函数,可以设置/获取套接字相关的选项;控制/检测套接字的工作状态等功能。 * WinSock库函数中的第二类函数是有关数据库操作的函数: 为应用进程提供同步获得有关主机、协议、服务等网络信息的机制; * 函数WSAStartup()初始化Windows Socket动态连接库,协商WinSock的版本,并为应用进程分配必要的资源。 函数WSACleanup()终止应用进程对Windows Socket动态连接库的调用,将Windows Socket实现中与这个应用程序相关的信息注销掉,并释放为该应用进程分配的所有资源。 * 了解这两个函数的接口功能定义: * 异步方式的数据库访问函数,为应用进程提供异步获取有关
文档评论(0)