WSADATA

WSADATA【WSADATA】WSADATA,一种数据结构 。这个结构被用来存储被WSAStartup函式调用后返回的Windows Sockets数据 。它包含Winsock.dll执行的数据 。
基本介绍中文名:WSADATA
作业系统:Windows CE
版本::大于等于1.0
定义位置::Winsock.h
说明这个结构被用来存储被WSAStartup函式调用后返回的Windows Sockets数据 。它包含Winsock.dll执行的数据 。结构原型摘自<winsock.h>typedef struct WSAData {        WORD                    wVersion;        WORD                    wHighVersion;#ifdef _WIN64        unsigned short          iMaxSockets;        unsigned short          iMaxUdpDg;        char FAR *              lpVendorInfo;        char                    szDescription[WSADESCRIPTION_LEN+1];        char                    szSystemStatus[WSASYS_STATUS_LEN+1];#else        char                    szDescription[WSADESCRIPTION_LEN+1];        char                    szSystemStatus[WSASYS_STATUS_LEN+1];        unsigned short          iMaxSockets;        unsigned short          iMaxUdpDg;        char FAR *              lpVendorInfo;#endif} WSADATA;WSADATA结构被用来保存AfxSocketInit函式返回的WindowsSockets初始化信息 。参数说明wVersionWindows Sockets DLL期望调用者使用的Windows Sockets规範的版本 。高位位元组存储副版本号, 低位位元组存储主版本号,可以用WORD MAKEWORD(BYTE,BYTE ) 返回这个值,例如:MAKEWORD(1,1)wHighVersion 这个DLL能够支持的Windows Sockets规範的最高版本 。通常它与wVersion相同 。szDescription 以null结尾的ASCII字元串,Windows Sockets DLL将对Windows Sockets实现的描述拷贝到这个字元串中,包括製造商标识 。文本(最多可以有256个字元)可以包含任何字元,但是要注意不能包含控制字元和格式字元,应用程式对其最可能的使用方式是把它(可能被截断)显示在在状态信息中 。szSystemStatus 以null结尾的ASCII字元串,Windows Sockets DLL把有关的状态或配置信息拷贝到该字元串中 。Windows Sockets DLL应当仅在这些信息对用户或支持人员有用时才使用它们,它不应被作为szDescription域的扩展 。iMaxSockets单个进程能够打开的socket的最大数目 。Windows Sockets的实现能提供一个全局的socket池,可以为任何进程分配;或者它也可以为socket分配属于进程的资源 。这个数字能够很好地反映Windows Sockets DLL或网路软体的配置方式 。应用程式的编写者可以通过这个数字来粗略地指明Windows Sockets的实现方式对应用程式是否有用 。例如,X Windows伺服器在第一次启动的时候可能会检查iMaxSockets的值:如果这个值小于8,应用程式将显示一条错误信息,指示用户重新配置网路软体(这是一种可能要使用szSystemStatus文本的场合) 。显然无法保证某个应用程式能够真正分配iMaxSockets个socket,因为可能有其它WindowsSockets应用程式正在使用 。iMaxUdpDgWindows Sockets应用程式能够传送或接收的最大的用户数据包协定(UDP)的数据包大小,以位元组为单位 。如果实现方式没有限制,那幺iMaxUdpDg为零 。在Berkeley sockets的许多实现中,对于UDP数据包有个固有的限制(在必要时被分解),大小为8192位元组 。Windows Sockets的实现可以对碎片重组缓冲区的分配作出限制 。对于适合的WindowsSockets 实现,iMaxUdpDg的最小值为512 。注意不管iMaxUdpDg的值是什幺,都不推荐你发回一个比网路的最大传送单元(MTU)还大的广播数据包 。(Windows Sockets API 没有提供发现MTU的机制,但是它不会小于512个位元组) 。WinSock2.0版中已被废弃 。lpVendorInfo指向销售商的数据结构的指针 。这个结构的定义(如果有)超出了WindowsSockets规範的範围 。WinSock2.0版中已被废弃 。备注在MFC,WSADATA结构是AfxSocketInit返回的函式,调用你的InitInstance函式 。如果你需要使用信息从它之后你可以检索结构并将其存储在你的程式WSAStartup 给WSADATA 结构的成员分配些列值:wVersion wVersionRequested 数值wHighVersion wVersionRequested 数值szDescription NULL 字元串szSystemStatus NULL 字元串iMaxSockets 100iMaxUdpDg 0lpVendorInfo NULL必备条件:作业系统Windows CE版本:大于等于1.0定义位置:Winsock.h注:本API是微软公司提供的完整 Windows CE作业系统包的一部分 。这个功能取决于原始设备製造商,有些设备可能不支持这个API 。