包含vb.netpeek的词条( 三 )


Type WSAData
wVersionAs Integer
wHighVersionAs Integer
szDescriptionAs String * WSADESCRIPTION_LEN
szSystemStatus As String * WSASYS_STATUS_LEN
iMaxSocketsAs Integer
iMaxUdpDgAs Integer
lpVendorInfoAs Long
End Type
数据成员的描述在下表中:
Field描述
wVersionWindows Sockets 版本信息 。
wHighVersion通过加载库文件得到的最高的支持Winsock 的版本,
它通常和wVersion值相同 。
szDescriptionWindows Sockets 执行时的详细描述
szSystemStatus包含了相关的状态和配置的信息
iMaxSockets表示同时打开的socket最大数 , 为0表示没有限制 。
iMaxUdpDg表示同时打开的数据报最大数,为0表示没有限制 。
lpVendorInfo厂商指定信息预留
在Winsock的1.1和2.2版本中没有lpVendorInfo的返回值 。因为winsock 2支持多个传输协议,所以iMaxSockets 和iMaxUdpDg只能在仅支持TCP/TP的winsock1.1中使用 。为了在Winsock 2中获得这些值,你可以使用WSAEnumProtocols 函数 。
如果成功或者返回一个错误代码,则函数返回 0 。
错误代码含义
WSASYSNOTREADY指出网络没有为传输准备好 。
WSAVERNOTSUPPORTED当前的WinSock实现不支持应用程序指定的Windows Sockets规范版本
WSAEINPROGRESS一个阻塞WinSock调用正在进行
WSAEPROCLIM请求的协议没有在系统中配置或没有支持它的实现存在 。
WSAEFAULTlpWSAData 不是有效的指针
2.WSACleanup 函数
每次调用了WSAStartup函数,你都需要调用WSACleanup函数 , 通知系统来卸载库文件及清除已分配的资源,这个函数十分简单,没有任何参数:
Declare Function WSACleanup Lib "ws2_32.dll" () As Long
3.建立Socket函数
Declare Function socket Lib "ws2_32.dll" (ByVal af As Long, _
ByVal s_type As Long,
ByVal Protocol As Long) As Long
函数有3个参数定义建立何种socket , 三个参数分别是:
ArgumentDescriptionEnum Type
afAddress family specification.AddressFamily
s_typeType specification for the new socket.SocketType
ProtocolProtocol to be used with the socketSocketProtocol
that is specific to the indicated address
family.
AddressFamily:
AF_UNSPEC = 0'/* unspecified */
AF_UNIX = 1'/* local to host (pipes, portals) */
AF_INET = 2'/* internetwork: UDP, TCP, etc. */
AF_IMPLINK = 3'/* arpanet imp addresses */
AF_PUP = 4'/* pup protocols: e.g. BSP */
AF_CHAOS = 5'/* mit CHAOS protocols */
AF_NS = 6'/* XEROX NS protocols */
AF_IPX = AF_NS'/* IPX protocols: IPX, SPX, etc. */
AF_ISO = 7'/* ISO protocols */
AF_OSI = AF_ISO'/* OSI is ISO */
AF_ECMA = 8'/* european computer manufacturers */
AF_DATAKIT = 9'/* datakit protocols */
AF_CCITT = 10'/* CCITT protocols, X.25 etc */
AF_SNA = 11'/* IBM SNA */
AF_DECnet = 12'/* DECnet */
AF_DLI = 13'/* Direct data link interface */
AF_LAT = 14'/* LAT */
AF_HYLINK = 15'/* NSC Hyperchannel */
AF_APPLETALK = 16'/* AppleTalk */
AF_NETBIOS = 17'/* NetBios-style addresses */
AF_VOICEVIEW = 18'/* VoiceView */
AF_FIREFOX = 19'/* Protocols from Firefox */
AF_UNKNOWN1 = 20'/* Somebody is using this! */
AF_BAN = 21'/* Banyan */
AF_ATM = 22'/* Native ATM Services */
AF_INET6 = 23'/* Internetwork Version 6 */
AF_CLUSTER = 24'/* Microsoft Wolfpack */
AF_12844 = 25'/* IEEE 1284.4 WG AF */
AF_MAX = 26
Socket types:
SOCK_STREAM = 1' /* stream socket */
SOCK_DGRAM = 2' /* datagram socket */
SOCK_RAW = 3' /* raw-protocol interface */
SOCK_RDM = 4' /* reliably-delivered message */
SOCK_SEQPACKET = 5' /* sequenced packet stream */
Protocols:
IPPROTO_IP = 0'/* dummy for IP */
IPPROTO_ICMP = 1'/* control message protocol */

推荐阅读