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
|
---|