source: trunk/ab5.0/ablib/src/Classes/System/Net/Sockets/misc.ab@ 639

Last change on this file since 639 was 639, checked in by OverTaker, 16 years ago

IPAddressクラスを実装。Winsockを補助するクラスも実装。

File size: 4.0 KB
Line 
1
2
3Namespace System
4Namespace Net
5Namespace Sockets
6
7TypeDef SocketException = ActiveBasic.Windows.WindowsException
8
9Enum 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
41End Enum
42
43Enum SocketType
44 Stream = SOCK_STREAM
45 Dgram = SOCK_DGRAM
46 Raw = SOCK_RAW
47 Rdm = SOCK_RDM
48 Seqpacket = SOCK_SEQPACKET
49End Enum
50
51Enum 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
77End Enum
78
79Enum 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
90End Enum
91
92/*!
93@brief Winsockを初期化するクラス
94@author OverTaker
95@date 2008/10/05
96*/
97Class Winsock
98 Static wsa As WSADATA
99Public
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
158End Class
159
160End Namespace
161End Namespace
162End Namespace
Note: See TracBrowser for help on using the repository browser.