计算机网络实验相关wsastartup.pdfVIP

  • 10
  • 0
  • 约5.96千字
  • 约 7页
  • 2025-05-23 发布于北京
  • 举报

WSAStartup()

简述:

#includewinsock.h

intPASCALFARWSAStartup(WORDwVersionRequested,LPWSADATA

lpWSAData);

wVersionRequestedWindowsSocketsAPI提供的调用方可使用的最高版本号.

字节副版本(修正)号,低位字节指明主版本号.

lpWSAData指向WSADATA数据结构的指针,用来接收WindowsSockets实现的细

节.

本函数必须是应用程序或DLL调用的第一个WindowsSockets函数.它允许应用程序

或DLL指明WindowsSocketsAPI的版本号及获得特定WindowsSockets实现的细节.

应用程序或DLL只能在一次成功的WSAStartup()调用才能调用进一步的Windows

SocketsAPI函数.

为支持日后可能和WindowsSockets1.1有功能上差异的WindowsSockets实现及

应用程序,在WSAStartup()中规定了一个协议.WSAStartup()的调用方和Windows

SocketsDLL互相通知对方它们可以支持的最高版本,并且互相确认对方的最高版本是可接

受的.在WSAStartup()函数的,WindowsSocketsDLL检查了应用程序所需的版本.如

果版本高于DLL支持的最低版本,则调用成功并且DLL在wHighVersion中返回它所支持的

最高版本,在wVersion中返回它的高版本和wVersionRequested中的较小者.然后

WindowsSocketsDLL就会假设应用程序将使用wVersion.如果WSDATA结构中的

wVersion域对调用方来说不可接收,它就应调用WSACleanup()函数并且要么去另一个

WindowsSocketsDLL中搜索,要么初始化失败.

本协议允许WindowsSocketsDLL和WindowsSockets应用程序共同支持一定范围

的WindowsSockets版本.如果版本范围有,应用程序就可以成功地使用Windows

SocketsDLL.下列的图表给出了WSAStartup()在不同的应用程序和WindowsSockets

DLL版本中是如何工作的:

应用程序版本DLL版本wVersionRequestedwVersionwHighVersion最果

1.11.11.11.11.1use1.1

1.01.11.01.11.01.0use1.0

1.01.01.11.01.01.1use1.0

1.11.01.11.11.11.1use1.1

1.11.01.11.01.0失败

1.01.11.0----WSAVERNOTSUPPORTED

1.01.11.01.11.11.11.1use1.1

1.12.01.12.01.11.1use1.1

2.01.12.01.11.1失败

下列代码段给出了只支持WindowsSockets1.1版本的应用程序是如何进行

WSAStartup()调用的:

WORDwVersionRequested;

WSADATAwsaData;

interr;

wVersionRequested=MAKEWORD(1,1);

err=WSAStartup(wVersionRequested,wsaData);

文档评论(0)

1亿VIP精品文档

相关文档