首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

4.2  Winsock概述

Winsock19931月发布,最初有一些限制,其中包括只能用于TCP/IP协议的连接,不过Winsock 2已经能够使用其他类型的协议。与Winsock相关的有两个动态链接库(DLL)取决于应用程序是16位还是32位,其中winsock.dll用于16位应用程序,而wssock32.dll则用于32位应用程序。Winsock的另一个主要不足之处是它不能一次运行多个实例,这个限制也许算不上是缺陷,而只是开发Winsock的程序员们为了让组件能在Microsoft早期的操作系统上使用而做出的取舍。

由于Winsock在功能上的局限性,Winsock 2成为了今天Windows套接字编程的标准APIWinsock 2最初可用于Windows 98Windows NT 4.0操作系统,此后所有的Windows操作系统都安装了Winsock 2,并可支持它提供的功能。

 

如果机器上没有ws2_32.dll,则本章的所有程序将不能编译或运行;ws2_32.dll是提供Winsock 2功能的组件,可从Microsoft的网站上下载。

Winsock 2是一个专一的32位组件,它不能在Windows 3.11NT 3.51Microsoft公司其他任何早期的16位操作上运行。不过,在较早的16位操作系统上编写的使用Winsock 1.1的程序却可以在较新的操作系统上运行,因为Winsock 2 差不多是完全向后兼容的(backward-compatible)。惟一的例外是,当Winsock 1.1应用程序使用了阻塞钩子(blocking hooks)时,Winsock 2将不能支持。与Winsock 1.1相比,Winsock 2的新功能包括如下方面。

   更多的协议:异步传输模式(ATM)、网间分组交换(Internetwork Packet Exchange IPX)/顺序分组交换(Sequenced Packet ExchangeSPX),以及数字设备公司(Digital Equipment CorporationDEC)DECnet

   有条件地接受连接:在确定接受连接之前,可以拒绝连接。

   连接与断开数据连接(connect and disconnect data):只能应用于支持这项功能的传输协议;TCP/IP不支持这项功能。

   分层的服务提供者(Layered Service Providers):可将服务加到现有的传输提供者。

   多点及组播(Multipoint and Multicast):协议无关(protocol-independent)API与特定协议(protocol-specified)API

   多名字空间(Multiple Namespace):选择解析主机名或定位服务的协议。

   多协议支持(Multiple Protocol Support)Windows的系统架构为服务提供者提供了“插入”(plug-in)与“堆叠”(pile-on)的能力。

   I/O重叠与事件对象:利用Win32的方式,改进服务的吞吐量。

   服务质量(Quality of ServiceQoS):套接字带宽的监视与跟踪。

   分发与收集(Scatter and Gather):几乎可同时从几个缓冲区发送和接收分组。

   套接字共享:两个或多个进程共享同一个套接字。

   传输协议独立(Transport Protocol Independence):可根据协议所提供的服务选择协议。

   厂商标识与扩展机制(Vendor IDs and a Mechanism for Vendor Extensions):厂商可以加入特定的API

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论