ncGetXByY()请求。
正如4.1.1节所讲述的,Windows Sockets实现以这样一种方式阻塞一个操作,Windows消息处理可以继续,发出调用的应用程序仍然可以收到Windows消息。但在某些情况下,应用程序可能希望影响或改变这种伪阻塞的实现方式。WSASetBlockingHook()函数就提供了这样一种功能。它使得应用程序可以替换Windows
Sockets实现在“阻塞”操作中放弃处理器时调用的例程。
为了与基于线程的环境兼容,API调用的错误细节可以通过WSAGetLastError()调用得到。虽然已经为大家接收的Berkeley风格的机制是通过"errno"得到关于套接口的网络错误的,这种机制不能够保证在多线程环境中错误代码的完整性和正确性。WSAGetLastError()允许程序员能够得到对应于每一线程的最近的错误代码。
WSAGetLastError()所返回的错误代码尽量避免与标准的Microsoft C错误代码冲突。但是某些Windows Sockets例程返回的错误代码是在Microsoft C定义的标准错误代码之内的。如果你使用的应用程序开发环境中的错误代码定义与Microsoft
C不同,那么我们建议你使用Windows
Sockets错误代码前缀"WSA"来保证准确的检测错误。
这份规范定义了一个推荐的错误代码的集合,而且列举了每一个函数有可能返回的错误。但是某些Windows Sockets实现也有可能返回一些在我们列举之外的错误代码。应用程序应该具备能够处理在每个API描述下列举的错误代码之外的错误的能力。然而Windows Sockets实现不能返回在附录4.1中列举的合法Windows
Sockets错误之外的任何数值。
4.3.5 通过中介DLL调用Windows Sockets DLL
|