📄 winsock.bas
字号:
Attribute VB_Name = "Winsock"
Option Explicit
Public str1data As String
Public sockm As Long
Global Const IP_MULTICAST_TTL = 10
Global Const IP_MULTICAST_LOOP = 11
Global Const IP_ADD_MEMBERSHIP = 12
Global Const IP_DROP_MEMBERSHIP = 13
Type ip_mreq
imr_multiaddr As Long
imr_interface As Long
End Type
Global Const AF_INET = 2
Global Const IPPROTO_IP = 0
Global Const WSABASEERR = 10000
Global Const INADDR_ANY = &H0
Global Const WSAEINTR = (WSABASEERR + 4)
Global Const WSAEBADF = (WSABASEERR + 9)
Global Const WSAEACCES = (WSABASEERR + 13)
Global Const WSAEFAULT = (WSABASEERR + 14)
Global Const WSAEINVAL = (WSABASEERR + 22)
Global Const WSAEMFILE = (WSABASEERR + 24)
Global Const WSAEWOULDBLOCK = (WSABASEERR + 35)
Global Const WSAEINPROGRESS = (WSABASEERR + 36)
Global Const WSAEALREADY = (WSABASEERR + 37)
Global Const WSAENOTSOCK = (WSABASEERR + 38)
Global Const WSAEDESTADDRREQ = (WSABASEERR + 39)
Global Const WSAEMSGSIZE = (WSABASEERR + 40)
Global Const WSAEPROTOTYPE = (WSABASEERR + 41)
Global Const WSAENOPROTOOPT = (WSABASEERR + 42)
Global Const WSAEPROTONOSUPPORT = (WSABASEERR + 43)
Global Const WSAESOCKTNOSUPPORT = (WSABASEERR + 44)
Global Const WSAEOPNOTSUPP = (WSABASEERR + 45)
Global Const WSAEPFNOSUPPORT = (WSABASEERR + 46)
Global Const WSAEAFNOSUPPORT = (WSABASEERR + 47)
Global Const WSAEADDRINUSE = (WSABASEERR + 48)
Global Const WSAEADDRNOTAVAIL = (WSABASEERR + 49)
Global Const WSAENETDOWN = (WSABASEERR + 50)
Global Const WSAENETUNREACH = (WSABASEERR + 51)
Global Const WSAENETRESET = (WSABASEERR + 52)
Global Const WSAECONNABORTED = (WSABASEERR + 53)
Global Const WSAECONNRESET = (WSABASEERR + 54)
Global Const WSAENOBUFS = (WSABASEERR + 55)
Global Const WSAEISCONN = (WSABASEERR + 56)
Global Const WSAENOTCONN = (WSABASEERR + 57)
Global Const WSAESHUTDOWN = (WSABASEERR + 58)
Global Const WSAETOOMANYREFS = (WSABASEERR + 59)
Global Const WSAETIMEDOUT = (WSABASEERR + 60)
Global Const WSAECONNREFUSED = (WSABASEERR + 61)
Global Const WSAELOOP = (WSABASEERR + 62)
Global Const WSAENAMETOOLONG = (WSABASEERR + 63)
Global Const WSAEHOSTDOWN = (WSABASEERR + 64)
Global Const WSAEHOSTUNREACH = (WSABASEERR + 65)
Global Const WSAENOTEMPTY = (WSABASEERR + 66)
Global Const WSAEPROCLIM = (WSABASEERR + 67)
Global Const WSAEUSERS = (WSABASEERR + 68)
Global Const WSAEDQUOT = (WSABASEERR + 69)
Global Const WSAESTALE = (WSABASEERR + 70)
Global Const WSAEREMOTE = (WSABASEERR + 71)
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)
Global Const SOCK_STREAM = 1
Global Const SOCK_DGRAM = 2
Global Const SOCK_RAW = 3
Global Const SOCK_RDM = 4
Global Const SOCK_SEQPACKET = 5
Global Const INVALID_SOCKET = -1
Global Const SOCKET_ERROR = -1
Type sockaddr
sin_family As Integer
sin_port As Integer
sin_addr As Long
sin_zero As String * 8
End Type
Global Const sockaddr_size = 16
Global Const WSA_DESCRIPTIONLEN = 256
Global Const WSA_DescriptionSize = WSA_DESCRIPTIONLEN + 1
Global Const WSA_SYS_STATUS_LEN = 128
Global Const WSA_SysStatusSize = WSA_SYS_STATUS_LEN + 1
Type 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 Type
Declare Function htonl Lib "ws2_32.DLL" (ByVal hostlong As Long) As Long
Declare Function WSAStartup Lib "wsock32.DLL" (ByVal wVR As Long, lpWSAD As WSADataType) As Long
Declare Function WSACleanup Lib "wsock32.DLL" () As Long
Declare Function closesocket Lib "wsock32.DLL" (ByVal s As Long) As Long
Declare Function htons Lib "wsock32.DLL" (ByVal hostshort As Long) As Integer
Declare Function inet_addr Lib "wsock32.DLL" (ByVal cp As String) As Long
Declare Function setsockopt Lib "wsock32.DLL" (ByVal s As Long, ByVal level As Long, ByVal optname As Long, optval As ip_mreq, ByVal optlen As Long) As Long
Declare Function setsockopt2 Lib "wsock32.DLL" Alias "setsockopt" (ByVal s As Long, ByVal level As Long, ByVal optname As Long, optval As Any, ByVal optlen As Long) As Long
Public Function TCPIPStartup() As Boolean
Dim rc As Integer
Dim wVersionRequested As Long
Dim WSAData As WSADataType
wVersionRequested = &H202
TCPIPStartup = True
rc = WSAStartup(wVersionRequested, WSAData)
If rc <> 0 Then
MsgBox ("RC: " & rc & " Unable to start winsocks" & ", Error " & Err.LastDllError)
WSACleanup
TCPIPStartup = False
Exit Function
End If
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -