Attribute VB_Name = "WSKSOCK" Option ExplicitPublic Const FD_SETSIZE = 64 Type fd_set fd_count As Integer fd_array(FD_SETSIZE) As Integer End TypeType timeval tv_sec As Long tv_usec As Long End TypeType HOSTENT h_name As Long h_aliases As Long h_addrtype As Integer h_length As Integer h_addr_list As Long End Type Public Const hostent_size = 16Type servent s_name As Long s_aliases As Long s_port As Integer s_proto As Long End Type Public Const servent_size = 14Type protoent p_name As Long p_aliases As Long p_proto As Integer End Type Public Const protoent_size = 10Public Const IPPROTO_TCP = 6 Public Const IPPROTO_UDP = 17Public Const INADDR_NONE = &HFFFFFFFF Public Const INADDR_ANY = &H0Type sockaddr sin_family As Integer sin_port As Integer sin_addr As Long sin_zero As String * 8 End Type Public Const sockaddr_size = 16 Public saZero As sockaddrPublic Const WSA_DESCRIPTIONLEN = 256 Public Const WSA_DescriptionSize = WSA_DESCRIPTIONLEN + 1Public Const WSA_SYS_STATUS_LEN = 128 Public Const WSA_SysStatusSize = WSA_SYS_STATUS_LEN + 1Type WSADataType wversion As Integer wHighVersion As Integer szDescription As String * WSA_DescriptionSize szSystemStatus As String * WSA_SysStatusSize iMaxSockets As Integer iMaxUdpDg As Integer lpVendorInfo As Long End TypePublic Const INVALID_SOCKET = -1 Public Const SOCKET_ERROR = -1Public Const SOCK_STREAM = 1 Public Const SOCK_DGRAM = 2Public Const MAXGETHOSTSTRUCT = 1024Public Const AF_INET = 2 Public Const PF_INET = 2Type LingerType l_onoff As Integer l_linger As Integer End Type ' Windows Sockets definitions of regular Microsoft C error constants Global Const WSAEINTR = 10004 Global Const WSAEBADF = 10009 Global Const WSAEACCES = 10013 Global Const WSAEFAULT = 10014 Global Const WSAEINVAL = 10022 Global Const WSAEMFILE = 10024 ' Windows Sockets definitions of regular Berkeley error constants Global Const WSAEWOULDBLOCK = 10035 Global Const WSAEINPROGRESS = 10036 Global Const WSAEALREADY = 10037 Global Const WSAENOTSOCK = 10038 Global Const WSAEDESTADDRREQ = 10039 Global Const WSAEMSGSIZE = 10040 Global Const WSAEPROTOTYPE = 10041 Global Const WSAENOPROTOOPT = 10042 Global Const WSAEPROTONOSUPPORT = 10043 Global Const WSAESOCKTNOSUPPORT = 10044 Global Const WSAEOPNOTSUPP = 10045 Global Const WSAEPFNOSUPPORT = 10046 Global Const WSAEAFNOSUPPORT = 10047 Global Const WSAEADDRINUSE = 10048 Global Const WSAEADDRNOTAVAIL = 10049 Global Const WSAENETDOWN = 10050 Global Const WSAENETUNREACH = 10051 Global Const WSAENETRESET = 10052 Global Const WSAECONNABORTED = 10053 Global Const WSAECONNRESET = 10054 Global Const WSAENOBUFS = 10055 Global Const WSAEISCONN = 10056 Global Const WSAENOTCONN = 10057 Global Const WSAESHUTDOWN = 10058 Global Const WSAETOOMANYREFS = 10059 Global Const WSAETIMEDOUT = 10060 Global Const WSAECONNREFUSED = 10061 Global Const WSAELOOP = 10062 Global Const WSAENAMETOOLONG = 10063 Global Const WSAEHOSTDOWN = 10064 Global Const WSAEHOSTUNREACH = 10065 Global Const WSAENOTEMPTY = 10066 Global Const WSAEPROCLIM = 10067 Global Const WSAEUSERS = 10068 Global Const WSAEDQUOT = 10069 Global Const WSAESTALE = 10070 Global Const WSAEREMOTE = 10071 ' Extended Windows Sockets error constant definitions Global Const WSASYSNOTREADY = 10091 Global Const WSAVERNOTSUPPORTED = 10092 Global Const WSANOTINITIALISED = 10093 Global Const WSAHOST_NOT_FOUND = 11001 Global Const WSATRY_AGAIN = 11002 Global Const WSANO_RECOVERY = 11003 Global Const WSANO_DATA = 11004 Global Const WSANO_ADDRESS = 11004 '---ioctl Constants Public Const FIONREAD = &H8004667F Public Const FIONBIO = &H8004667E Public Const FIOASYNC = &H8004667D'---Windows System Functions Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Declare Sub MemCopy Lib "kernel32" Alias "RtlMoveMemory" (Dest As Any, Src As Any, ByVal cb&) Public Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Any) As Long '---async notification constants Public Const SOL_SOCKET = &HFFFF& Public Const SO_LINGER = &H80& Public Const FD_READ = &H1& Public Const FD_WRITE = &H2& Public Const FD_OOB = &H4& Public Const FD_ACCEPT = &H8& Public Const FD_CONNECT = &H10& Public Const FD_CLOSE = &H20& '---SOCKET FUNCTIONS Public Declare Function accept Lib "WSOCK32.DLL" (ByVal s As Long, addr As sockaddr, addrLen As Long) As Long Public Declare Function bind Lib "WSOCK32.DLL" (ByVal s As Long, addr As sockaddr, ByVal namelen As Long) As Long Public Declare Function closesocket Lib "WSOCK32.DLL" (ByVal s As Long) As Long Public Declare Function connect Lib "WSOCK32.DLL" (ByVal s As Long, addr As sockaddr, ByVal namelen As Long) As Long Public Declare Function ioctlsocket Lib "WSOCK32.DLL" (ByVal s As Long, ByVal cmd As Long, argp As Long) As Long Public Declare Function getpeername Lib "WSOCK32.DLL" (ByVal s As Long, sName As sockaddr, namelen As Long) As Long Public Declare Function getsockname Lib "WSOCK32.DLL" (ByVal s As Long, sName As sockaddr, namelen As Long) As Long Public Declare Function getsockopt Lib "WSOCK32.DLL" (ByVal s As Long, ByVal level As Long, ByVal optname As Long, optval As Any, optlen As Long) As Long Public Declare Function htonl Lib "WSOCK32.DLL" (ByVal hostlong As Long) As Long Public Declare Function htons Lib "WSOCK32.DLL" (ByVal hostshort As Long) As Integer Public Declare Function inet_addr Lib "WSOCK32.DLL" (ByVal cp As String) As Long Public Declare Function inet_ntoa Lib "WSOCK32.DLL" (ByVal inn As Long) As Long Public Declare Function listen Lib "WSOCK32.DLL" (ByVal s As Long, ByVal backlog As Long) As Long Public Declare Function ntohl Lib "WSOCK32.DLL" (ByVal netlong As Long) As Long Public Declare Function ntohs Lib "WSOCK32.DLL" (ByVal netshort As Long) As Integer Public Declare Function recv Lib "WSOCK32.DLL" (ByVal s As Long, ByVal buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long Public Declare Function recvfrom Lib "WSOCK32.DLL" (ByVal s As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long, from As sockaddr, fromlen As Long) As Long Public Declare Function ws_select Lib "WSOCK32.DLL" Alias "select" (ByVal nfds As Long, readfds As fd_set, writefds As fd_set, exceptfds As fd_set, TimeOut As timeval) As Long Public Declare Function send Lib "WSOCK32.DLL" (ByVal s As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long Public Declare Function sendto Lib "WSOCK32.DLL" (ByVal s As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long, to_addr As sockaddr, ByVal tolen As Long) As Long Public Declare Function setsockopt Lib "WSOCK32.DLL" (ByVal s As Long, ByVal level As Long, ByVal optname As Long, optval As Any, ByVal optlen As Long) As Long Public Declare Function ShutDown Lib "WSOCK32.DLL" Alias "shutdown" (ByVal s As Long, ByVal how As Long) As Long Public Declare Function socket Lib "WSOCK32.DLL" (ByVal af As Long, ByVal s_type As Long, ByVal protocol As Long) As Long
'---DATABASE FUNCTIONS Public Declare Function gethostbyaddr Lib "WSOCK32.DLL" (addr As Long, ByVal addr_len As Long, ByVal addr_type As Long) As Long Public Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal host_name As String) As Long Public Declare Function gethostname Lib "WSOCK32.DLL" (ByVal host_name As String, ByVal namelen As Long) As Long Public Declare Function getservbyport Lib "WSOCK32.DLL" (ByVal Port As Long, ByVal proto As String) As Long Public Declare Function getservbyname Lib "WSOCK32.DLL" (ByVal serv_name As String, ByVal proto As String) As Long Public Declare Function getprotobynumber Lib "WSOCK32.DLL" (ByVal proto As Long) As Long Public Declare Function getprotobyname Lib "WSOCK32.DLL" (ByVal proto_name As String) As Long '---WINDOWS EXTENSIONS Public Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVR As Long, lpWSAD As WSADataType) As Long Public Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long Public Declare Sub WSASetLastError Lib "WSOCK32.DLL" (ByVal iError As Long) Public Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long Public Declare Function WSAIsBlocking Lib "WSOCK32.DLL" () As Long Public Declare Function WSAUnhookBlockingHook Lib "WSOCK32.DLL" () As Long Public Declare Function WSASetBlockingHook Lib "WSOCK32.DLL" (ByVal lpBlockFunc As Long) As Long Public Declare Function WSACancelBlockingCall Lib "WSOCK32.DLL" () As Long Public Declare Function WSAAsyncGetServByName Lib "WSOCK32.DLL" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal serv_name As String, ByVal proto As String, buf As Any, ByVal buflen As Long) As Long Public Declare Function WSAAsyncGetServByPort Lib "WSOCK32.DLL" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal Port As Long, ByVal proto As String, buf As Any, ByVal buflen As Long) As Long Public Declare Function WSAAsyncGetProtoByName Lib "WSOCK32.DLL" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal proto_name As String, buf As Any, ByVal buflen As Long) As Long Public Declare Function WSAAsyncGetProtoByNumber Lib "WSOCK32.DLL" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal number As Long, buf As Any, ByVal buflen As Long) As Long Public Declare Function WSAAsyncGetHostByName Lib "WSOCK32.DLL" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal host_name As String, buf As Any, ByVal buflen As Long) As Long Public Declare Function WSAAsyncGetHostByAddr Lib "WSOCK32.DLL" (ByVal hWnd As Long, ByVal wMsg As Long, addr As Long, ByVal addr_len As Long, ByVal addr_type As Long, buf As Any, ByVal buflen As Long) As Long Public Declare Function WSACancelAsyncRequest Lib "WSOCK32.DLL" (ByVal hAsyncTaskHandle As Long) As Long Public Declare Function WSAAsyncSelect Lib "WSOCK32.DLL" (ByVal s As Long, ByVal hWnd As Long, ByVal wMsg As Long, ByVal lEvent As Long) As Long Public Declare Function WSARecvEx Lib "WSOCK32.DLL" (ByVal s As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long'SOME STUFF I ADDED Public Declare Function InternetGetConnectedState _ Lib "wininet.dll" (ByRef lpdwFlags As Long, _ ByVal dwReserved As Long) As LongPublic MySocket% Public SockReadBuffer$ Public Const WSA_NoName = "Unknown" Public WSAStartedUp As Boolean 'Flag to keep track of whether winsock WSAStartup wascalled 'Ping Private Type ICMP_OPTIONS Ttl As Byte Tos As Byte flags As Byte OptionsSize As Byte OptionsData As Long End Type Private Type ICMP_ECHO_REPLY Address As Long Status As Long RoundTripTime As Long DataSize As Long 'formerly integer ' Reserved As Integer DataPointer As Long Options As ICMP_OPTIONS Data As String * 250 End Type Private Const PING_TIMEOUT = 200 Declare Sub RtlMoveMemory Lib "kernel32" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long) Declare Function IcmpCreateFile Lib "Icmp.dll" () As Long Declare Function IcmpSendEcho Lib "Icmp.dll" (ByVal IcmpHandle As Long, ByVal DestinationAddress As Long, ByVal RequestData As String, ByVal RequestSize As Long, ByVal RequestOptions As Long, ReplyBuffer As ICMP_ECHO_REPLY, ByVal ReplySize As Long, ByVal TimeOut As Long) As Long Declare Function IcmpCloseHandle Lib "Icmp.dll" (ByVal IcmpHandle As Long) As Long 'DNSInfo Private Type IP_ADDRESS_STRING IpAddressString(4 * 4 - 1) As Byte End TypePrivate Type IP_MASK_STRING IpMaskString(4 * 4 - 1) As Byte End TypePrivate Type IP_ADDR_STRING Next As Long IpAddress As IP_ADDRESS_STRING IpMask As IP_MASK_STRING Context As Long End TypePrivate Const MAX_HOSTNAME_LEN = 128 Private Const MAX_DOMAIN_NAME_LEN = 128 Private Const MAX_SCOPE_ID_LEN = 256Private Type FIXED_INFO hostname(MAX_HOSTNAME_LEN + 4 - 1) As Byte DomainName(MAX_DOMAIN_NAME_LEN + 4 - 1) As Byte CurrentDnsServer As Long DnsServerList As IP_ADDR_STRING NodeType As Long ScopeId(MAX_SCOPE_ID_LEN + 4 - 1) As Byte EnableRouting As Long EnableProxy As Long EnableDns As Long End TypePublic Const ERROR_BUFFER_OVERFLOW = 111Private Declare Function GetNetworkParams Lib "iphlpapi.dll" _ (pFixedInfo As Any, _ pOutBufLen As Long) As Long Private Declare Sub MoveMemory Lib "kernel32.dll" _ Alias "RtlMoveMemory" _ (Destination As Any, _ Source As Any, _ ByVal Length As Long) 'For Wait Routines Declare Function timeGetTime Lib "winmm.dll" () As LongPublic Function WSAGetAsyncBufLen(ByVal lParam As Long) As Long If (lParam And &HFFFF&) > &H7FFF Then WSAGetAsyncBufLen = (lParam And &HFFFF&) - &H10000 Else WSAGetAsyncBufLen = lParam And &HFFFF& End IfEnd FunctionPublic Function WSAGetSelectEvent(ByVal lParam As Long) As Integer If (lParam And &HFFFF&) > &H7FFF Then WSAGetSelectEvent = (lParam And &HFFFF&) - &H10000 Else WSAGetSelectEvent = lParam And &HFFFF& End IfEnd Function
Option ExplicitPublic Const FD_SETSIZE = 64
Type fd_set fd_count As Integer
fd_array(FD_SETSIZE) As Integer
End TypeType timeval tv_sec As Long
tv_usec As Long
End TypeType HOSTENT h_name As Long
h_aliases As Long
h_addrtype As Integer
h_length As Integer
h_addr_list As Long
End Type
Public Const hostent_size = 16Type servent s_name As Long
s_aliases As Long
s_port As Integer
s_proto As Long
End Type
Public Const servent_size = 14Type protoent p_name As Long
p_aliases As Long
p_proto As Integer
End Type
Public Const protoent_size = 10Public Const IPPROTO_TCP = 6
Public Const IPPROTO_UDP = 17Public Const INADDR_NONE = &HFFFFFFFF
Public Const INADDR_ANY = &H0Type sockaddr sin_family As Integer
sin_port As Integer
sin_addr As Long
sin_zero As String * 8
End Type
Public Const sockaddr_size = 16
Public saZero As sockaddrPublic Const WSA_DESCRIPTIONLEN = 256
Public Const WSA_DescriptionSize = WSA_DESCRIPTIONLEN + 1Public Const WSA_SYS_STATUS_LEN = 128
Public Const WSA_SysStatusSize = WSA_SYS_STATUS_LEN + 1Type WSADataType wversion As Integer
wHighVersion As Integer
szDescription As String * WSA_DescriptionSize
szSystemStatus As String * WSA_SysStatusSize
iMaxSockets As Integer
iMaxUdpDg As Integer
lpVendorInfo As Long
End TypePublic Const INVALID_SOCKET = -1
Public Const SOCKET_ERROR = -1Public Const SOCK_STREAM = 1
Public Const SOCK_DGRAM = 2Public Const MAXGETHOSTSTRUCT = 1024Public Const AF_INET = 2
Public Const PF_INET = 2Type LingerType l_onoff As Integer
l_linger As Integer
End Type
' Windows Sockets definitions of regular Microsoft C error constants
Global Const WSAEINTR = 10004
Global Const WSAEBADF = 10009
Global Const WSAEACCES = 10013
Global Const WSAEFAULT = 10014
Global Const WSAEINVAL = 10022
Global Const WSAEMFILE = 10024
' Windows Sockets definitions of regular Berkeley error constants
Global Const WSAEWOULDBLOCK = 10035
Global Const WSAEINPROGRESS = 10036
Global Const WSAEALREADY = 10037
Global Const WSAENOTSOCK = 10038
Global Const WSAEDESTADDRREQ = 10039
Global Const WSAEMSGSIZE = 10040
Global Const WSAEPROTOTYPE = 10041
Global Const WSAENOPROTOOPT = 10042
Global Const WSAEPROTONOSUPPORT = 10043
Global Const WSAESOCKTNOSUPPORT = 10044
Global Const WSAEOPNOTSUPP = 10045
Global Const WSAEPFNOSUPPORT = 10046
Global Const WSAEAFNOSUPPORT = 10047
Global Const WSAEADDRINUSE = 10048
Global Const WSAEADDRNOTAVAIL = 10049
Global Const WSAENETDOWN = 10050
Global Const WSAENETUNREACH = 10051
Global Const WSAENETRESET = 10052
Global Const WSAECONNABORTED = 10053
Global Const WSAECONNRESET = 10054
Global Const WSAENOBUFS = 10055
Global Const WSAEISCONN = 10056
Global Const WSAENOTCONN = 10057
Global Const WSAESHUTDOWN = 10058
Global Const WSAETOOMANYREFS = 10059
Global Const WSAETIMEDOUT = 10060
Global Const WSAECONNREFUSED = 10061
Global Const WSAELOOP = 10062
Global Const WSAENAMETOOLONG = 10063
Global Const WSAEHOSTDOWN = 10064
Global Const WSAEHOSTUNREACH = 10065
Global Const WSAENOTEMPTY = 10066
Global Const WSAEPROCLIM = 10067
Global Const WSAEUSERS = 10068
Global Const WSAEDQUOT = 10069
Global Const WSAESTALE = 10070
Global Const WSAEREMOTE = 10071
' Extended Windows Sockets error constant definitions
Global Const WSASYSNOTREADY = 10091
Global Const WSAVERNOTSUPPORTED = 10092
Global Const WSANOTINITIALISED = 10093
Global Const WSAHOST_NOT_FOUND = 11001
Global Const WSATRY_AGAIN = 11002
Global Const WSANO_RECOVERY = 11003
Global Const WSANO_DATA = 11004
Global Const WSANO_ADDRESS = 11004
'---ioctl Constants
Public Const FIONREAD = &H8004667F
Public Const FIONBIO = &H8004667E
Public Const FIOASYNC = &H8004667D'---Windows System Functions
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Sub MemCopy Lib "kernel32" Alias "RtlMoveMemory" (Dest As Any, Src As Any, ByVal cb&)
Public Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Any) As Long
'---async notification constants
Public Const SOL_SOCKET = &HFFFF&
Public Const SO_LINGER = &H80&
Public Const FD_READ = &H1&
Public Const FD_WRITE = &H2&
Public Const FD_OOB = &H4&
Public Const FD_ACCEPT = &H8&
Public Const FD_CONNECT = &H10&
Public Const FD_CLOSE = &H20&
'---SOCKET FUNCTIONS
Public Declare Function accept Lib "WSOCK32.DLL" (ByVal s As Long, addr As sockaddr, addrLen As Long) As Long
Public Declare Function bind Lib "WSOCK32.DLL" (ByVal s As Long, addr As sockaddr, ByVal namelen As Long) As Long
Public Declare Function closesocket Lib "WSOCK32.DLL" (ByVal s As Long) As Long
Public Declare Function connect Lib "WSOCK32.DLL" (ByVal s As Long, addr As sockaddr, ByVal namelen As Long) As Long
Public Declare Function ioctlsocket Lib "WSOCK32.DLL" (ByVal s As Long, ByVal cmd As Long, argp As Long) As Long
Public Declare Function getpeername Lib "WSOCK32.DLL" (ByVal s As Long, sName As sockaddr, namelen As Long) As Long
Public Declare Function getsockname Lib "WSOCK32.DLL" (ByVal s As Long, sName As sockaddr, namelen As Long) As Long
Public Declare Function getsockopt Lib "WSOCK32.DLL" (ByVal s As Long, ByVal level As Long, ByVal optname As Long, optval As Any, optlen As Long) As Long
Public Declare Function htonl Lib "WSOCK32.DLL" (ByVal hostlong As Long) As Long
Public Declare Function htons Lib "WSOCK32.DLL" (ByVal hostshort As Long) As Integer
Public Declare Function inet_addr Lib "WSOCK32.DLL" (ByVal cp As String) As Long
Public Declare Function inet_ntoa Lib "WSOCK32.DLL" (ByVal inn As Long) As Long
Public Declare Function listen Lib "WSOCK32.DLL" (ByVal s As Long, ByVal backlog As Long) As Long
Public Declare Function ntohl Lib "WSOCK32.DLL" (ByVal netlong As Long) As Long
Public Declare Function ntohs Lib "WSOCK32.DLL" (ByVal netshort As Long) As Integer
Public Declare Function recv Lib "WSOCK32.DLL" (ByVal s As Long, ByVal buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long
Public Declare Function recvfrom Lib "WSOCK32.DLL" (ByVal s As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long, from As sockaddr, fromlen As Long) As Long
Public Declare Function ws_select Lib "WSOCK32.DLL" Alias "select" (ByVal nfds As Long, readfds As fd_set, writefds As fd_set, exceptfds As fd_set, TimeOut As timeval) As Long
Public Declare Function send Lib "WSOCK32.DLL" (ByVal s As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long
Public Declare Function sendto Lib "WSOCK32.DLL" (ByVal s As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long, to_addr As sockaddr, ByVal tolen As Long) As Long
Public Declare Function setsockopt Lib "WSOCK32.DLL" (ByVal s As Long, ByVal level As Long, ByVal optname As Long, optval As Any, ByVal optlen As Long) As Long
Public Declare Function ShutDown Lib "WSOCK32.DLL" Alias "shutdown" (ByVal s As Long, ByVal how As Long) As Long
Public Declare Function socket Lib "WSOCK32.DLL" (ByVal af As Long, ByVal s_type As Long, ByVal protocol As Long) As Long
Public Declare Function gethostbyaddr Lib "WSOCK32.DLL" (addr As Long, ByVal addr_len As Long, ByVal addr_type As Long) As Long
Public Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal host_name As String) As Long
Public Declare Function gethostname Lib "WSOCK32.DLL" (ByVal host_name As String, ByVal namelen As Long) As Long
Public Declare Function getservbyport Lib "WSOCK32.DLL" (ByVal Port As Long, ByVal proto As String) As Long
Public Declare Function getservbyname Lib "WSOCK32.DLL" (ByVal serv_name As String, ByVal proto As String) As Long
Public Declare Function getprotobynumber Lib "WSOCK32.DLL" (ByVal proto As Long) As Long
Public Declare Function getprotobyname Lib "WSOCK32.DLL" (ByVal proto_name As String) As Long
'---WINDOWS EXTENSIONS
Public Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVR As Long, lpWSAD As WSADataType) As Long
Public Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Public Declare Sub WSASetLastError Lib "WSOCK32.DLL" (ByVal iError As Long)
Public Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
Public Declare Function WSAIsBlocking Lib "WSOCK32.DLL" () As Long
Public Declare Function WSAUnhookBlockingHook Lib "WSOCK32.DLL" () As Long
Public Declare Function WSASetBlockingHook Lib "WSOCK32.DLL" (ByVal lpBlockFunc As Long) As Long
Public Declare Function WSACancelBlockingCall Lib "WSOCK32.DLL" () As Long
Public Declare Function WSAAsyncGetServByName Lib "WSOCK32.DLL" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal serv_name As String, ByVal proto As String, buf As Any, ByVal buflen As Long) As Long
Public Declare Function WSAAsyncGetServByPort Lib "WSOCK32.DLL" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal Port As Long, ByVal proto As String, buf As Any, ByVal buflen As Long) As Long
Public Declare Function WSAAsyncGetProtoByName Lib "WSOCK32.DLL" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal proto_name As String, buf As Any, ByVal buflen As Long) As Long
Public Declare Function WSAAsyncGetProtoByNumber Lib "WSOCK32.DLL" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal number As Long, buf As Any, ByVal buflen As Long) As Long
Public Declare Function WSAAsyncGetHostByName Lib "WSOCK32.DLL" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal host_name As String, buf As Any, ByVal buflen As Long) As Long
Public Declare Function WSAAsyncGetHostByAddr Lib "WSOCK32.DLL" (ByVal hWnd As Long, ByVal wMsg As Long, addr As Long, ByVal addr_len As Long, ByVal addr_type As Long, buf As Any, ByVal buflen As Long) As Long
Public Declare Function WSACancelAsyncRequest Lib "WSOCK32.DLL" (ByVal hAsyncTaskHandle As Long) As Long
Public Declare Function WSAAsyncSelect Lib "WSOCK32.DLL" (ByVal s As Long, ByVal hWnd As Long, ByVal wMsg As Long, ByVal lEvent As Long) As Long
Public Declare Function WSARecvEx Lib "WSOCK32.DLL" (ByVal s As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long'SOME STUFF I ADDED
Public Declare Function InternetGetConnectedState _
Lib "wininet.dll" (ByRef lpdwFlags As Long, _
ByVal dwReserved As Long) As LongPublic MySocket%
Public SockReadBuffer$
Public Const WSA_NoName = "Unknown"
Public WSAStartedUp As Boolean 'Flag to keep track of whether winsock WSAStartup wascalled
'Ping
Private Type ICMP_OPTIONS
Ttl As Byte
Tos As Byte
flags As Byte
OptionsSize As Byte
OptionsData As Long
End Type
Private Type ICMP_ECHO_REPLY
Address As Long
Status As Long
RoundTripTime As Long
DataSize As Long 'formerly integer
' Reserved As Integer
DataPointer As Long
Options As ICMP_OPTIONS
Data As String * 250
End Type
Private Const PING_TIMEOUT = 200
Declare Sub RtlMoveMemory Lib "kernel32" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Declare Function IcmpCreateFile Lib "Icmp.dll" () As Long
Declare Function IcmpSendEcho Lib "Icmp.dll" (ByVal IcmpHandle As Long, ByVal DestinationAddress As Long, ByVal RequestData As String, ByVal RequestSize As Long, ByVal RequestOptions As Long, ReplyBuffer As ICMP_ECHO_REPLY, ByVal ReplySize As Long, ByVal TimeOut As Long) As Long
Declare Function IcmpCloseHandle Lib "Icmp.dll" (ByVal IcmpHandle As Long) As Long
'DNSInfo
Private Type IP_ADDRESS_STRING
IpAddressString(4 * 4 - 1) As Byte
End TypePrivate Type IP_MASK_STRING
IpMaskString(4 * 4 - 1) As Byte
End TypePrivate Type IP_ADDR_STRING
Next As Long
IpAddress As IP_ADDRESS_STRING
IpMask As IP_MASK_STRING
Context As Long
End TypePrivate Const MAX_HOSTNAME_LEN = 128
Private Const MAX_DOMAIN_NAME_LEN = 128
Private Const MAX_SCOPE_ID_LEN = 256Private Type FIXED_INFO
hostname(MAX_HOSTNAME_LEN + 4 - 1) As Byte
DomainName(MAX_DOMAIN_NAME_LEN + 4 - 1) As Byte
CurrentDnsServer As Long
DnsServerList As IP_ADDR_STRING
NodeType As Long
ScopeId(MAX_SCOPE_ID_LEN + 4 - 1) As Byte
EnableRouting As Long
EnableProxy As Long
EnableDns As Long
End TypePublic Const ERROR_BUFFER_OVERFLOW = 111Private Declare Function GetNetworkParams Lib "iphlpapi.dll" _
(pFixedInfo As Any, _
pOutBufLen As Long) As Long
Private Declare Sub MoveMemory Lib "kernel32.dll" _
Alias "RtlMoveMemory" _
(Destination As Any, _
Source As Any, _
ByVal Length As Long)
'For Wait Routines
Declare Function timeGetTime Lib "winmm.dll" () As LongPublic Function WSAGetAsyncBufLen(ByVal lParam As Long) As Long If (lParam And &HFFFF&) > &H7FFF Then
WSAGetAsyncBufLen = (lParam And &HFFFF&) - &H10000
Else
WSAGetAsyncBufLen = lParam And &HFFFF&
End IfEnd FunctionPublic Function WSAGetSelectEvent(ByVal lParam As Long) As Integer If (lParam And &HFFFF&) > &H7FFF Then
WSAGetSelectEvent = (lParam And &HFFFF&) - &H10000
Else
WSAGetSelectEvent = lParam And &HFFFF&
End IfEnd Function