[639] | 1 |
|
---|
| 2 |
|
---|
| 3 | Namespace System
|
---|
| 4 | Namespace Net
|
---|
| 5 | Namespace Sockets
|
---|
| 6 |
|
---|
| 7 | TypeDef SocketException = ActiveBasic.Windows.WindowsException
|
---|
| 8 |
|
---|
| 9 | Enum AddressFamily
|
---|
| 10 | AppleTalk = PF_APPLETALK
|
---|
| 11 | Atm = PF_ATM
|
---|
| 12 | Banyan = PF_BAN
|
---|
| 13 | Ccitt = PF_CCITT
|
---|
| 14 | Chaos = PF_CHAOS
|
---|
| 15 | ' Cluster
|
---|
| 16 | DataKit = PF_DATAKIT
|
---|
| 17 | ' DataLink
|
---|
| 18 | DecNet = PF_DECnet
|
---|
| 19 | Ecma = PF_ECMA
|
---|
| 20 | FireFox = PF_FIREFOX
|
---|
| 21 | ' HyperChannel
|
---|
| 22 | ' Ieee12844
|
---|
| 23 | ImpLink = PF_IMPLINK
|
---|
| 24 | InterNetwork = PF_INET
|
---|
| 25 | InterNetworkV6 = PF_INET6
|
---|
| 26 | Ipx = PF_IPX
|
---|
| 27 | ' Irda
|
---|
| 28 | Iso = PF_ISO
|
---|
| 29 | Lat = PF_LAT
|
---|
| 30 | ' Max
|
---|
| 31 | ' NetBios
|
---|
| 32 | ' NetworkDesigners
|
---|
| 33 | NS = PF_NS
|
---|
| 34 | Osi = PF_OSI
|
---|
| 35 | Pup = PF_PUP
|
---|
| 36 | Sna = PF_SNA
|
---|
| 37 | Unix = PF_UNIX
|
---|
| 38 | Unknown = PF_UNKNOWN1
|
---|
| 39 | Unspecified = PF_UNSPEC
|
---|
| 40 | VoiceView = PF_VOICEVIEW
|
---|
| 41 | End Enum
|
---|
| 42 |
|
---|
| 43 | Enum SocketType
|
---|
| 44 | Stream = SOCK_STREAM
|
---|
| 45 | Dgram = SOCK_DGRAM
|
---|
| 46 | Raw = SOCK_RAW
|
---|
| 47 | Rdm = SOCK_RDM
|
---|
| 48 | Seqpacket = SOCK_SEQPACKET
|
---|
| 49 | End Enum
|
---|
| 50 |
|
---|
| 51 | Enum ProtocolType
|
---|
| 52 | Ggp = IPPROTO_GGP
|
---|
| 53 | Icmp = IPPROTO_ICMP
|
---|
| 54 | IcmpV6 = IPPROTO_ICMPV6
|
---|
| 55 | Idp = IPPROTO_IDP
|
---|
| 56 | Igmp = IPPROTO_IGMP
|
---|
| 57 | IP = IPPROTO_IP
|
---|
| 58 | IPSecAuthenticationHeader = IPPROTO_AH
|
---|
| 59 | IPSecEncapsulatingSecurityPayload = IPPROTO_ESP
|
---|
| 60 | IPv4 = IPPROTO_IPV4
|
---|
| 61 | IPv6 = IPPROTO_IPV6
|
---|
| 62 | IPv6DestinationOptions = IPPROTO_DSTOPTS
|
---|
| 63 | IPv6FragmentHeader = IPPROTO_FRAGMENT
|
---|
| 64 | ' IPv6HopByHopOptions
|
---|
| 65 | IPv6NoNextHeader = IPPROTO_NONE
|
---|
| 66 | IPv6RoutingHeader = IPPROTO_ROUTING
|
---|
| 67 | Ipx
|
---|
| 68 | ND = IPPROTO_ND
|
---|
| 69 | Pup = IPPROTO_PUP
|
---|
| 70 | Raw = IPPROTO_RAW
|
---|
| 71 | ' Spx
|
---|
| 72 | ' SpxII
|
---|
| 73 | Tcp = IPPROTO_TCP
|
---|
| 74 | Udp = IPPROTO_UDP
|
---|
| 75 | ' Unknown
|
---|
| 76 | ' Unspecified
|
---|
| 77 | End Enum
|
---|
| 78 |
|
---|
| 79 | Enum SocketFlags
|
---|
| 80 | None = 0
|
---|
| 81 | OutOfBand = MSG_OOB
|
---|
| 82 | Peek = MSG_PEEK
|
---|
| 83 | DontRoute = MSG_DONTROUTE
|
---|
| 84 | ' MaxIOVectorLength
|
---|
| 85 | ' Truncated
|
---|
| 86 | ' ControlDataTruncated
|
---|
| 87 | ' Broadcast
|
---|
| 88 | ' Multicast
|
---|
| 89 | Pertical = MSG_PARTIAL
|
---|
| 90 | End Enum
|
---|
| 91 |
|
---|
| 92 | /*!
|
---|
| 93 | @brief Winsockを初期化するクラス
|
---|
| 94 | @author OverTaker
|
---|
| 95 | @date 2008/10/05
|
---|
| 96 | */
|
---|
| 97 | Class Winsock
|
---|
| 98 | Static wsa As WSADATA
|
---|
| 99 | Public
|
---|
| 100 |
|
---|
| 101 | /*!
|
---|
| 102 | @brief Winsockの初期化を行う
|
---|
| 103 | */
|
---|
| 104 | Static Sub Initialize()
|
---|
| 105 | Initialize(New Version(2, 2))
|
---|
| 106 | End Sub
|
---|
| 107 |
|
---|
| 108 | /*!
|
---|
| 109 | @brief Winsockを初期化する
|
---|
| 110 | @param Winsockを初期化するバージョン
|
---|
| 111 | */
|
---|
| 112 | Static Sub Initialize(version As Version)
|
---|
| 113 | If WSAStartup(MAKEWORD(version.Major, version.Minor), wsa) Then
|
---|
| 114 | Throw New SocketException(WSAGetLastError(), "Winsock.Initalize")
|
---|
| 115 | End If
|
---|
| 116 | End Sub
|
---|
| 117 |
|
---|
| 118 | /*!
|
---|
| 119 | @brief Winsockの終了処理を行う
|
---|
| 120 | */
|
---|
| 121 | Static Sub Finalize()
|
---|
| 122 | If WSACleanup() = SOCKET_ERROR Then
|
---|
| 123 | Throw New SocketException(WSAGetLastError(), "Winsock.Finalize")
|
---|
| 124 | End If
|
---|
| 125 | End Sub
|
---|
| 126 |
|
---|
| 127 | /*!
|
---|
| 128 | @brief Winsockのバージョンを取得します
|
---|
| 129 | @return バージョン
|
---|
| 130 | */
|
---|
| 131 | Static Function Version() As Version
|
---|
| 132 | Return New System.Version(HIBYTE(wsa.wVersion), LOBYTE(wsa.wVersion))
|
---|
| 133 | End Function
|
---|
| 134 |
|
---|
| 135 | /*!
|
---|
| 136 | @brief OSで扱える最大のWinsockバージョンを取得します
|
---|
| 137 | @return バージョン
|
---|
| 138 | */
|
---|
| 139 | Static Function HighVersion() As Version
|
---|
| 140 | Return New System.Version(HIBYTE(wsa.wHighVersion), LOBYTE(wsa.wHighVersion))
|
---|
| 141 | End Function
|
---|
| 142 |
|
---|
| 143 | /*!
|
---|
| 144 | @brief Winsockの実装の説明を取得する
|
---|
| 145 | @return 説明
|
---|
| 146 | */
|
---|
| 147 | Static Function Description() As String
|
---|
| 148 | Return New String(wsa.szDescription As PCTSTR)
|
---|
| 149 | End Function
|
---|
| 150 |
|
---|
| 151 | /*!
|
---|
| 152 | @brief Winsockの状態を取得する
|
---|
| 153 | @return 状態
|
---|
| 154 | */
|
---|
| 155 | Static Function SystemStatus() As String
|
---|
| 156 | Return New String(wsa.szSystemStatus As PCTSTR)
|
---|
| 157 | End Function
|
---|
| 158 | End Class
|
---|
| 159 |
|
---|
| 160 | End Namespace
|
---|
| 161 | End Namespace
|
---|
| 162 | End Namespace
|
---|