📄 winsock.bas
字号:
' * Extended Windows Sockets error constant definitions
' */
Global Const WSASYSNOTREADY = (WSABASEERR + 91)
Global Const WSAVERNOTSUPPORTED = (WSABASEERR + 92)
Global Const WSANOTINITIALISED = (WSABASEERR + 93)
Global Const WSAEDISCON = (WSABASEERR + 101)
Global Const WSAENOMORE = (WSABASEERR + 102)
Global Const WSAECANCELLED = (WSABASEERR + 103)
Global Const WSAEINVALIDPROCTABLE = (WSABASEERR + 104)
Global Const WSAEINVALIDPROVIDER = (WSABASEERR + 105)
Global Const WSAEPROVIDERFAILEDINIT = (WSABASEERR + 106)
Global Const WSASYSCALLFAILURE = (WSABASEERR + 107)
Global Const WSASERVICE_NOT_FOUND = (WSABASEERR + 108)
Global Const WSATYPE_NOT_FOUND = (WSABASEERR + 109)
Global Const WSA_E_NO_MORE = (WSABASEERR + 110)
Global Const WSA_E_CANCELLED = (WSABASEERR + 111)
Global Const WSAEREFUSED = (WSABASEERR + 112)
'/*
' * Error return codes from gethostbyname() and gethostbyaddr()
' * (when using the resolver). Note that these errors are
' * retrieved via WSAGetLastError() and must therefore follow
' * the rules for avoiding clashes with error numbers from
' * specific implementations or language run-time systems.
' * For this reason the codes are based at WSABASEERR+1001.
' * Note also that [WSA]NO_ADDRESS is defined only for
' * compatibility purposes.
' */
'/* Authoritative Answer: Host not found */
Global Const WSAHOST_NOT_FOUND = (WSABASEERR + 1001)
'/* Non-Authoritative: Host not found, or SERVERFAIL */
Global Const WSATRY_AGAIN = (WSABASEERR + 1002)
'/* Non-recoverable errors, FORMERR, REFUSED, NOTIMP */
Global Const WSANO_RECOVERY = (WSABASEERR + 1003)
'/* Valid name, no data record of requested type */
Global Const WSANO_DATA = (WSABASEERR + 1004)
'/*
' * Define QOS related error return codes
' *
' */
Global Const WSA_QOS_RECEIVERS = (WSABASEERR + 1005)
'/* at least one Reserve has arrived */
Global Const WSA_QOS_SENDERS = (WSABASEERR + 1006)
'/* at least one Path has arrived */
Global Const WSA_QOS_NO_SENDERS = (WSABASEERR + 1007)
'/* there are no senders */
Global Const WSA_QOS_NO_RECEIVERS = (WSABASEERR + 1008)
'/* there are no receivers */
Global Const WSA_QOS_REQUEST_CONFIRMED = (WSABASEERR + 1009)
'/* Reserve has been confirmed */
Global Const WSA_QOS_ADMISSION_FAILURE = (WSABASEERR + 1010)
'/* error due to lack of resources */
Global Const WSA_QOS_POLICY_FAILURE = (WSABASEERR + 1011)
'/* rejected for administrative reasons - bad credentials */
Global Const WSA_QOS_BAD_STYLE = (WSABASEERR + 1012)
'/* unknown or conflicting style */
Global Const WSA_QOS_BAD_OBJECT = (WSABASEERR + 1013)
'/* problem with some part of the filterspec or providerspecific
' * buffer in general */
Global Const WSA_QOS_TRAFFIC_CTRL_ERROR = (WSABASEERR + 1014)
'/* problem with some part of the flowspec */
Global Const WSA_QOS_GENERIC_ERROR = (WSABASEERR + 1015)
'/* general error */
' connection types
Global Const SOCK_STREAM = 1 '/* stream socket */
Global Const SOCK_DGRAM = 2 '/* datagram socket */
Global Const SOCK_RAW = 3 '/* raw-protocol interface */
Global Const SOCK_RDM = 4 '/* reliably-delivered message */
Global Const SOCK_SEQPACKET = 5 '/* sequenced packet stream */
'/* Flag bit definitions for dwServiceFlags1 */
Global Const XP1_CONNECTIONLESS = &H1
Global Const XP1_GUARANTEED_DELIVERY = &H2
Global Const XP1_GUARANTEED_ORDER = &H4
Global Const XP1_MESSAGE_ORIENTED = &H8
Global Const XP1_PSEUDO_STREAM = &H10
Global Const XP1_GRACEFUL_CLOSE = &H20
Global Const XP1_EXPEDITED_DATA = &H40
Global Const XP1_CONNECT_DATA = &H80
Global Const XP1_DISCONNECT_DATA = &H100
Global Const XP1_SUPPORT_BROADCAST = &H200
Global Const XP1_SUPPORT_MULTIPOINT = &H400
Global Const XP1_MULTIPOINT_CONTROL_PLANE = &H800
Global Const XP1_MULTIPOINT_DATA_PLANE = &H1000
Global Const XP1_QOS_SUPPORTED = &H2000
Global Const XP1_INTERRUPT = &H4000
Global Const XP1_UNI_SEND = &H8000
Global Const XP1_UNI_RECV = &H10000
Global Const XP1_IFS_HANDLES = &H20000
Global Const XP1_PARTIAL_MESSAGE = &H40000
Global Const BIGENDIAN = &H0
Global Const LITTLEENDIAN = &H1
Global Const SECURITY_PROTOCOL_NONE = &H0
'/*
' * WinSock 2 extension -- manifest constants for WSAJoinLeaf()
' */
Global Const JL_SENDER_ONLY = &H1
Global Const JL_RECEIVER_ONLY = &H2
Global Const JL_BOTH = &H4
'/*
' * WinSock 2 extension -- manifest constants for WSASocket()
' */
Global Const WSA_FLAG_OVERLAPPED = &H1
Global Const WSA_FLAG_MULTIPOINT_C_ROOT = &H2
Global Const WSA_FLAG_MULTIPOINT_C_LEAF = &H4
Global Const WSA_FLAG_MULTIPOINT_D_ROOT = &H8
Global Const WSA_FLAG_MULTIPOINT_D_LEAF = &H10
'/*
' * WinSock 2 extension -- manifest constants for WSAIoctl()
' */
Global Const IOC_UNIX = &H0
Global Const IOC_WS2 = &H8000000
Global Const IOC_PROTOCOL = &H10000000
Global Const IOC_VENDOR = &H18000000
Global Const IOCPARM_MASK = &H7F '/* parameters must be < 128 bytes */
Global Const IOC_VOID = &H20000000 '/* no parameters */
Global Const IOC_OUT = &H40000000 '/* copy out parameters */
Global Const IOC_IN = &H80000000 '/* copy in parameters */
Global Const IOC_INOUT = IOC_IN Or IOC_OUT
Global Const SIO_ASSOCIATE_HANDLE = IOC_IN Or IOC_WS2 Or 1
Global Const SIO_ENABLE_CIRCULAR_QUEUEING = IOC_VOID Or IOC_WS2 Or 2
Global Const SIO_FIND_ROUTE = IOC_OUT Or IOC_WS2 Or 3
Global Const SIO_FLUSH = IOC_VOID Or IOC_WS2 Or 4
Global Const SIO_GET_BROADCAST_ADDRESS = IOC_OUT Or IOC_WS2 Or 5
Global Const SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT Or IOC_WS2 Or 6
Global Const SIO_GET_QOS = IOC_INOUT Or IOC_WS2 Or 7
Global Const SIO_GET_GROUP_QOS = IOC_INOUT Or IOC_WS2 Or 8
Global Const SIO_MULTIPOINT_LOOPBACK = IOC_IN Or IOC_WS2 Or 9
Global Const SIO_MULTICAST_SCOPE = IOC_IN Or IOC_WS2 Or 10
Global Const SIO_SET_QOS = IOC_IN Or IOC_WS2 Or 11
Global Const SIO_SET_GROUP_QOS = IOC_IN Or IOC_WS2 Or 12
Global Const SIO_TRANSLATE_HANDLE = IOC_INOUT Or IOC_WS2 Or 13
Global Const SIO_ROUTING_INTERFACE_QUERY = IOC_INOUT Or IOC_WS2 Or 20
Global Const SIO_ROUTING_INTERFACE_CHANGE = IOC_IN Or IOC_WS2 Or 21
Global Const SIO_ADDRESS_LIST_QUERY = IOC_OUT Or IOC_WS2 Or 22
Global Const SIO_ADDRESS_LIST_CHANGE = IOC_VOID Or IOC_WS2 Or 23
Global Const SIO_QUERY_TARGET_PNP_HANDLE = IOC_OUT Or IOC_WS2 Or 24
Type tcp_keepalive
onoff As Long
keepalivetime As Long
keepaliveinterval As Long
End Type
Global Const SIO_RCVALL = IOC_IN Or IOC_VENDOR Or 1
Global Const SIO_RCVALL_MCAST = IOC_IN Or IOC_VENDOR Or 2
Global Const SIO_RCVALL_IGMPMCAST = IOC_IN Or IOC_VENDOR Or 3
Global Const SIO_KEEPALIVE_VALS = IOC_IN Or IOC_VENDOR Or 4
Global Const SIO_ABSORB_RTRALERT = IOC_IN Or IOC_VENDOR Or 5
Global Const SIO_UCAST_IF = IOC_IN Or IOC_VENDOR Or 6
Global Const SIO_LIMIT_BROADCASTS = IOC_IN Or IOC_VENDOR Or 7
Global Const SIO_INDEX_BIND = IOC_IN Or IOC_VENDOR Or 8
Global Const SIO_INDEX_MCASTIF = IOC_IN Or IOC_VENDOR Or 9
Global Const SIO_INDEX_ADD_MCAST = IOC_IN Or IOC_VENDOR Or 10
Global Const SIO_INDEX_DEL_MCAST = IOC_IN Or IOC_VENDOR Or 11
'/*
' * SockAddr Information
' */
Type SOCKET_ADDRESS
lpSockaddr As Long
iSockaddrLength As Long
End Type
'/*
' * CSAddr Information
' */
Type CSADDR_INFO
LocalAddr As Long
RemoteAddr As Long
iSocketType As Long
iProtocol As Long
End Type
'/*
' * Address list returned via SIO_ADDRESS_LIST_QUERY
' */
Type SOCKET_ADDRESS_LIST
iAddressCount As Long
Address(20) As SOCKET_ADDRESS 'here we hack a little bit
End Type
'/*
' * Address Family/Protocol Tuples
' */
Type AFPROTOCOLS
iAddressFamily As Long
iProtocol As Long
End Type
'address constants
Global Const INADDR_NONE = &HFFFF
Global Const INADDR_ANY = &H0
Global Const SOL_SOCKET = &HFFFF&
Global Const INVALID_SOCKET = -1
Global Const SOCKET_ERROR = -1
Global Const MAXGETHOSTSTRUCT = 1024
Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type
Global Const MAX_PROTOCOL_CHAIN = 7
Global Const BASE_PROTOCOL = 1
Global Const LAYERED_PROTOCOL = 0
Type WSAPROTOCOLCHAIN
ChainLen As Long '/* the length of the chain, */
'/* length = 0 means layered protocol, */
'/* length = 1 means base protocol, */
'/* length > 1 means protocol chain */
ChainEntries(MAX_PROTOCOL_CHAIN - 1) As Long '/* a list of dwCatalogEntryIds */
End Type
Global Const WSAPROTOCOL_LEN = 255
Type WSAPROTOCOL_INFO
dwServiceFlags1 As Long
dwServiceFlags2 As Long
dwServiceFlags3 As Long
dwServiceFlags4 As Long
dwProviderFlags As Long
ProviderId As GUID
dwCatalogEntryId As Long
ProtocolChain As WSAPROTOCOLCHAIN
iVersion As Long
iAddressFamily As Long
iMaxSockAddr As Long
iMinSockAddr As Long
iSocketType As Long
iProtocol As Long
iProtocolMaxOffset As Long
iNetworkByteOrder As Long
iSecurityScheme As Long
dwMessageSize As Long
dwProviderReserved As Long
szProtocol(WSAPROTOCOL_LEN) As Byte
End Type
Global Const NS_ALL = 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -