Realistic 3D camera system
3D camera system components
socket_types.hpp
Go to the documentation of this file.
1 //
2 // detail/socket_types.hpp
3 // ~~~~~~~~~~~~~~~~~~~~~~~
4 //
5 // Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 //
7 // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 //
10 
11 #ifndef ASIO_DETAIL_SOCKET_TYPES_HPP
12 #define ASIO_DETAIL_SOCKET_TYPES_HPP
13 
14 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 # pragma once
16 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 
18 #include "asio/detail/config.hpp"
19 
20 #if defined(ASIO_WINDOWS_RUNTIME)
21 // Empty.
22 #elif defined(ASIO_WINDOWS) || defined(__CYGWIN__)
23 # if defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_)
24 # error WinSock.h has already been included
25 # endif // defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_)
26 # if defined(__BORLANDC__)
27 # include <stdlib.h> // Needed for __errno
28 # if !defined(_WSPIAPI_H_)
29 # define _WSPIAPI_H_
30 # define ASIO_WSPIAPI_H_DEFINED
31 # endif // !defined(_WSPIAPI_H_)
32 # endif // defined(__BORLANDC__)
33 # if defined(WINAPI_FAMILY)
34 # if ((WINAPI_FAMILY & WINAPI_PARTITION_DESKTOP) != 0)
35 # include <windows.h>
36 # endif // ((WINAPI_FAMILY & WINAPI_PARTITION_DESKTOP) != 0)
37 # endif // defined(WINAPI_FAMILY)
38 # include <winsock2.h>
39 # include <ws2tcpip.h>
40 # include <mswsock.h>
41 # if defined(ASIO_WSPIAPI_H_DEFINED)
42 # undef _WSPIAPI_H_
43 # undef ASIO_WSPIAPI_H_DEFINED
44 # endif // defined(ASIO_WSPIAPI_H_DEFINED)
45 # if !defined(ASIO_NO_DEFAULT_LINKED_LIBS)
46 # if defined(UNDER_CE)
47 # pragma comment(lib, "ws2.lib")
48 # elif defined(_MSC_VER) || defined(__BORLANDC__)
49 # pragma comment(lib, "ws2_32.lib")
50 # pragma comment(lib, "mswsock.lib")
51 # endif // defined(_MSC_VER) || defined(__BORLANDC__)
52 # endif // !defined(ASIO_NO_DEFAULT_LINKED_LIBS)
54 #else
55 # include <sys/ioctl.h>
56 # if !defined(__SYMBIAN32__)
57 # include <sys/poll.h>
58 # endif
59 # include <sys/types.h>
60 # include <sys/stat.h>
61 # include <fcntl.h>
62 # if defined(__hpux)
63 # include <sys/time.h>
64 # endif
65 # if !defined(__hpux) || defined(__SELECT)
66 # include <sys/select.h>
67 # endif
68 # include <sys/socket.h>
69 # include <sys/uio.h>
70 # include <sys/un.h>
71 # include <netinet/in.h>
72 # if !defined(__SYMBIAN32__)
73 # include <netinet/tcp.h>
74 # endif
75 # include <arpa/inet.h>
76 # include <netdb.h>
77 # include <net/if.h>
78 # include <limits.h>
79 # if defined(__sun)
80 # include <sys/filio.h>
81 # include <sys/sockio.h>
82 # endif
83 #endif
84 
86 
87 namespace asio {
88 namespace detail {
89 
90 #if defined(ASIO_WINDOWS_RUNTIME)
91 const int max_addr_v4_str_len = 256;
92 const int max_addr_v6_str_len = 256;
93 typedef unsigned __int32 u_long_type;
94 typedef unsigned __int16 u_short_type;
95 struct in4_addr_type { u_long_type s_addr; };
96 struct in4_mreq_type { in4_addr_type imr_multiaddr, imr_interface; };
97 struct in6_addr_type { unsigned char s6_addr[16]; };
98 struct in6_mreq_type { in6_addr_type ipv6mr_multiaddr;
99  unsigned long ipv6mr_interface; };
100 struct socket_addr_type { int sa_family; };
101 struct sockaddr_in4_type { int sin_family;
102  in4_addr_type sin_addr; u_short_type sin_port; };
103 struct sockaddr_in6_type { int sin6_family;
104  in6_addr_type sin6_addr; u_short_type sin6_port;
105  u_long_type sin6_flowinfo; u_long_type sin6_scope_id; };
106 struct sockaddr_storage_type { int ss_family;
107  unsigned char ss_bytes[128 - sizeof(int)]; };
108 struct addrinfo_type { int ai_flags;
109  int ai_family, ai_socktype, ai_protocol;
110  int ai_addrlen; const void* ai_addr;
111  const char* ai_canonname; addrinfo_type* ai_next; };
112 struct linger_type { u_short_type l_onoff, l_linger; };
113 typedef u_long_type ioctl_arg_type;
114 typedef int signed_size_type;
115 # define ASIO_OS_DEF(c) ASIO_OS_DEF_##c
116 # define ASIO_OS_DEF_AF_UNSPEC 0
117 # define ASIO_OS_DEF_AF_INET 2
118 # define ASIO_OS_DEF_AF_INET6 23
119 # define ASIO_OS_DEF_SOCK_STREAM 1
120 # define ASIO_OS_DEF_SOCK_DGRAM 2
121 # define ASIO_OS_DEF_SOCK_RAW 3
122 # define ASIO_OS_DEF_SOCK_SEQPACKET 5
123 # define ASIO_OS_DEF_IPPROTO_IP 0
124 # define ASIO_OS_DEF_IPPROTO_IPV6 41
125 # define ASIO_OS_DEF_IPPROTO_TCP 6
126 # define ASIO_OS_DEF_IPPROTO_UDP 17
127 # define ASIO_OS_DEF_IPPROTO_ICMP 1
128 # define ASIO_OS_DEF_IPPROTO_ICMPV6 58
129 # define ASIO_OS_DEF_FIONBIO 1
130 # define ASIO_OS_DEF_FIONREAD 2
131 # define ASIO_OS_DEF_INADDR_ANY 0
132 # define ASIO_OS_DEF_MSG_OOB 0x1
133 # define ASIO_OS_DEF_MSG_PEEK 0x2
134 # define ASIO_OS_DEF_MSG_DONTROUTE 0x4
135 # define ASIO_OS_DEF_MSG_EOR 0 // Not supported.
136 # define ASIO_OS_DEF_SHUT_RD 0x0
137 # define ASIO_OS_DEF_SHUT_WR 0x1
138 # define ASIO_OS_DEF_SHUT_RDWR 0x2
139 # define ASIO_OS_DEF_SOMAXCONN 0x7fffffff
140 # define ASIO_OS_DEF_SOL_SOCKET 0xffff
141 # define ASIO_OS_DEF_SO_BROADCAST 0x20
142 # define ASIO_OS_DEF_SO_DEBUG 0x1
143 # define ASIO_OS_DEF_SO_DONTROUTE 0x10
144 # define ASIO_OS_DEF_SO_KEEPALIVE 0x8
145 # define ASIO_OS_DEF_SO_LINGER 0x80
146 # define ASIO_OS_DEF_SO_SNDBUF 0x1001
147 # define ASIO_OS_DEF_SO_RCVBUF 0x1002
148 # define ASIO_OS_DEF_SO_SNDLOWAT 0x1003
149 # define ASIO_OS_DEF_SO_RCVLOWAT 0x1004
150 # define ASIO_OS_DEF_SO_REUSEADDR 0x4
151 # define ASIO_OS_DEF_TCP_NODELAY 0x1
152 # define ASIO_OS_DEF_IP_MULTICAST_IF 2
153 # define ASIO_OS_DEF_IP_MULTICAST_TTL 3
154 # define ASIO_OS_DEF_IP_MULTICAST_LOOP 4
155 # define ASIO_OS_DEF_IP_ADD_MEMBERSHIP 5
156 # define ASIO_OS_DEF_IP_DROP_MEMBERSHIP 6
157 # define ASIO_OS_DEF_IP_TTL 7
158 # define ASIO_OS_DEF_IPV6_UNICAST_HOPS 4
159 # define ASIO_OS_DEF_IPV6_MULTICAST_IF 9
160 # define ASIO_OS_DEF_IPV6_MULTICAST_HOPS 10
161 # define ASIO_OS_DEF_IPV6_MULTICAST_LOOP 11
162 # define ASIO_OS_DEF_IPV6_JOIN_GROUP 12
163 # define ASIO_OS_DEF_IPV6_LEAVE_GROUP 13
164 # define ASIO_OS_DEF_AI_CANONNAME 0x2
165 # define ASIO_OS_DEF_AI_PASSIVE 0x1
166 # define ASIO_OS_DEF_AI_NUMERICHOST 0x4
167 # define ASIO_OS_DEF_AI_NUMERICSERV 0x8
168 # define ASIO_OS_DEF_AI_V4MAPPED 0x800
169 # define ASIO_OS_DEF_AI_ALL 0x100
170 # define ASIO_OS_DEF_AI_ADDRCONFIG 0x400
171 #elif defined(ASIO_WINDOWS) || defined(__CYGWIN__)
172 typedef SOCKET socket_type;
173 const SOCKET invalid_socket = INVALID_SOCKET;
174 const int socket_error_retval = SOCKET_ERROR;
175 const int max_addr_v4_str_len = 256;
176 const int max_addr_v6_str_len = 256;
177 typedef sockaddr socket_addr_type;
178 typedef in_addr in4_addr_type;
179 typedef ip_mreq in4_mreq_type;
180 typedef sockaddr_in sockaddr_in4_type;
181 # if defined(ASIO_HAS_OLD_WIN_SDK)
182 typedef in6_addr_emulation in6_addr_type;
183 typedef ipv6_mreq_emulation in6_mreq_type;
184 typedef sockaddr_in6_emulation sockaddr_in6_type;
185 typedef sockaddr_storage_emulation sockaddr_storage_type;
186 typedef addrinfo_emulation addrinfo_type;
187 # else
188 typedef in6_addr in6_addr_type;
189 typedef ipv6_mreq in6_mreq_type;
190 typedef sockaddr_in6 sockaddr_in6_type;
191 typedef sockaddr_storage sockaddr_storage_type;
192 typedef addrinfo addrinfo_type;
193 # endif
194 typedef ::linger linger_type;
195 typedef unsigned long ioctl_arg_type;
196 typedef u_long u_long_type;
197 typedef u_short u_short_type;
198 typedef int signed_size_type;
199 # define ASIO_OS_DEF(c) ASIO_OS_DEF_##c
200 # define ASIO_OS_DEF_AF_UNSPEC AF_UNSPEC
201 # define ASIO_OS_DEF_AF_INET AF_INET
202 # define ASIO_OS_DEF_AF_INET6 AF_INET6
203 # define ASIO_OS_DEF_SOCK_STREAM SOCK_STREAM
204 # define ASIO_OS_DEF_SOCK_DGRAM SOCK_DGRAM
205 # define ASIO_OS_DEF_SOCK_RAW SOCK_RAW
206 # define ASIO_OS_DEF_SOCK_SEQPACKET SOCK_SEQPACKET
207 # define ASIO_OS_DEF_IPPROTO_IP IPPROTO_IP
208 # define ASIO_OS_DEF_IPPROTO_IPV6 IPPROTO_IPV6
209 # define ASIO_OS_DEF_IPPROTO_TCP IPPROTO_TCP
210 # define ASIO_OS_DEF_IPPROTO_UDP IPPROTO_UDP
211 # define ASIO_OS_DEF_IPPROTO_ICMP IPPROTO_ICMP
212 # define ASIO_OS_DEF_IPPROTO_ICMPV6 IPPROTO_ICMPV6
213 # define ASIO_OS_DEF_FIONBIO FIONBIO
214 # define ASIO_OS_DEF_FIONREAD FIONREAD
215 # define ASIO_OS_DEF_INADDR_ANY INADDR_ANY
216 # define ASIO_OS_DEF_MSG_OOB MSG_OOB
217 # define ASIO_OS_DEF_MSG_PEEK MSG_PEEK
218 # define ASIO_OS_DEF_MSG_DONTROUTE MSG_DONTROUTE
219 # define ASIO_OS_DEF_MSG_EOR 0 // Not supported on Windows.
220 # define ASIO_OS_DEF_SHUT_RD SD_RECEIVE
221 # define ASIO_OS_DEF_SHUT_WR SD_SEND
222 # define ASIO_OS_DEF_SHUT_RDWR SD_BOTH
223 # define ASIO_OS_DEF_SOMAXCONN SOMAXCONN
224 # define ASIO_OS_DEF_SOL_SOCKET SOL_SOCKET
225 # define ASIO_OS_DEF_SO_BROADCAST SO_BROADCAST
226 # define ASIO_OS_DEF_SO_DEBUG SO_DEBUG
227 # define ASIO_OS_DEF_SO_DONTROUTE SO_DONTROUTE
228 # define ASIO_OS_DEF_SO_KEEPALIVE SO_KEEPALIVE
229 # define ASIO_OS_DEF_SO_LINGER SO_LINGER
230 # define ASIO_OS_DEF_SO_SNDBUF SO_SNDBUF
231 # define ASIO_OS_DEF_SO_RCVBUF SO_RCVBUF
232 # define ASIO_OS_DEF_SO_SNDLOWAT SO_SNDLOWAT
233 # define ASIO_OS_DEF_SO_RCVLOWAT SO_RCVLOWAT
234 # define ASIO_OS_DEF_SO_REUSEADDR SO_REUSEADDR
235 # define ASIO_OS_DEF_TCP_NODELAY TCP_NODELAY
236 # define ASIO_OS_DEF_IP_MULTICAST_IF IP_MULTICAST_IF
237 # define ASIO_OS_DEF_IP_MULTICAST_TTL IP_MULTICAST_TTL
238 # define ASIO_OS_DEF_IP_MULTICAST_LOOP IP_MULTICAST_LOOP
239 # define ASIO_OS_DEF_IP_ADD_MEMBERSHIP IP_ADD_MEMBERSHIP
240 # define ASIO_OS_DEF_IP_DROP_MEMBERSHIP IP_DROP_MEMBERSHIP
241 # define ASIO_OS_DEF_IP_TTL IP_TTL
242 # define ASIO_OS_DEF_IPV6_UNICAST_HOPS IPV6_UNICAST_HOPS
243 # define ASIO_OS_DEF_IPV6_MULTICAST_IF IPV6_MULTICAST_IF
244 # define ASIO_OS_DEF_IPV6_MULTICAST_HOPS IPV6_MULTICAST_HOPS
245 # define ASIO_OS_DEF_IPV6_MULTICAST_LOOP IPV6_MULTICAST_LOOP
246 # define ASIO_OS_DEF_IPV6_JOIN_GROUP IPV6_JOIN_GROUP
247 # define ASIO_OS_DEF_IPV6_LEAVE_GROUP IPV6_LEAVE_GROUP
248 # define ASIO_OS_DEF_AI_CANONNAME AI_CANONNAME
249 # define ASIO_OS_DEF_AI_PASSIVE AI_PASSIVE
250 # define ASIO_OS_DEF_AI_NUMERICHOST AI_NUMERICHOST
251 # if defined(AI_NUMERICSERV)
252 # define ASIO_OS_DEF_AI_NUMERICSERV AI_NUMERICSERV
253 # else
254 # define ASIO_OS_DEF_AI_NUMERICSERV 0
255 # endif
256 # if defined(AI_V4MAPPED)
257 # define ASIO_OS_DEF_AI_V4MAPPED AI_V4MAPPED
258 # else
259 # define ASIO_OS_DEF_AI_V4MAPPED 0
260 # endif
261 # if defined(AI_ALL)
262 # define ASIO_OS_DEF_AI_ALL AI_ALL
263 # else
264 # define ASIO_OS_DEF_AI_ALL 0
265 # endif
266 # if defined(AI_ADDRCONFIG)
267 # define ASIO_OS_DEF_AI_ADDRCONFIG AI_ADDRCONFIG
268 # else
269 # define ASIO_OS_DEF_AI_ADDRCONFIG 0
270 # endif
271 # if defined (_WIN32_WINNT)
272 const int max_iov_len = 64;
273 # else
274 const int max_iov_len = 16;
275 # endif
276 #else
277 typedef int socket_type;
278 const int invalid_socket = -1;
279 const int socket_error_retval = -1;
280 const int max_addr_v4_str_len = INET_ADDRSTRLEN;
281 #if defined(INET6_ADDRSTRLEN)
282 const int max_addr_v6_str_len = INET6_ADDRSTRLEN + 1 + IF_NAMESIZE;
283 #else // defined(INET6_ADDRSTRLEN)
284 const int max_addr_v6_str_len = 256;
285 #endif // defined(INET6_ADDRSTRLEN)
286 typedef sockaddr socket_addr_type;
287 typedef in_addr in4_addr_type;
288 # if defined(__hpux)
289 // HP-UX doesn't provide ip_mreq when _XOPEN_SOURCE_EXTENDED is defined.
290 struct in4_mreq_type
291 {
292  struct in_addr imr_multiaddr;
293  struct in_addr imr_interface;
294 };
295 # else
296 typedef ip_mreq in4_mreq_type;
297 # endif
298 typedef sockaddr_in sockaddr_in4_type;
299 typedef in6_addr in6_addr_type;
300 typedef ipv6_mreq in6_mreq_type;
301 typedef sockaddr_in6 sockaddr_in6_type;
302 typedef sockaddr_storage sockaddr_storage_type;
303 typedef sockaddr_un sockaddr_un_type;
304 typedef addrinfo addrinfo_type;
305 typedef ::linger linger_type;
306 typedef int ioctl_arg_type;
307 typedef uint32_t u_long_type;
308 typedef uint16_t u_short_type;
309 #if defined(ASIO_HAS_SSIZE_T)
310 typedef ssize_t signed_size_type;
311 #else // defined(ASIO_HAS_SSIZE_T)
312 typedef int signed_size_type;
313 #endif // defined(ASIO_HAS_SSIZE_T)
314 # define ASIO_OS_DEF(c) ASIO_OS_DEF_##c
315 # define ASIO_OS_DEF_AF_UNSPEC AF_UNSPEC
316 # define ASIO_OS_DEF_AF_INET AF_INET
317 # define ASIO_OS_DEF_AF_INET6 AF_INET6
318 # define ASIO_OS_DEF_SOCK_STREAM SOCK_STREAM
319 # define ASIO_OS_DEF_SOCK_DGRAM SOCK_DGRAM
320 # define ASIO_OS_DEF_SOCK_RAW SOCK_RAW
321 # define ASIO_OS_DEF_SOCK_SEQPACKET SOCK_SEQPACKET
322 # define ASIO_OS_DEF_IPPROTO_IP IPPROTO_IP
323 # define ASIO_OS_DEF_IPPROTO_IPV6 IPPROTO_IPV6
324 # define ASIO_OS_DEF_IPPROTO_TCP IPPROTO_TCP
325 # define ASIO_OS_DEF_IPPROTO_UDP IPPROTO_UDP
326 # define ASIO_OS_DEF_IPPROTO_ICMP IPPROTO_ICMP
327 # define ASIO_OS_DEF_IPPROTO_ICMPV6 IPPROTO_ICMPV6
328 # define ASIO_OS_DEF_FIONBIO FIONBIO
329 # define ASIO_OS_DEF_FIONREAD FIONREAD
330 # define ASIO_OS_DEF_INADDR_ANY INADDR_ANY
331 # define ASIO_OS_DEF_MSG_OOB MSG_OOB
332 # define ASIO_OS_DEF_MSG_PEEK MSG_PEEK
333 # define ASIO_OS_DEF_MSG_DONTROUTE MSG_DONTROUTE
334 # define ASIO_OS_DEF_MSG_EOR MSG_EOR
335 # define ASIO_OS_DEF_SHUT_RD SHUT_RD
336 # define ASIO_OS_DEF_SHUT_WR SHUT_WR
337 # define ASIO_OS_DEF_SHUT_RDWR SHUT_RDWR
338 # define ASIO_OS_DEF_SOMAXCONN SOMAXCONN
339 # define ASIO_OS_DEF_SOL_SOCKET SOL_SOCKET
340 # define ASIO_OS_DEF_SO_BROADCAST SO_BROADCAST
341 # define ASIO_OS_DEF_SO_DEBUG SO_DEBUG
342 # define ASIO_OS_DEF_SO_DONTROUTE SO_DONTROUTE
343 # define ASIO_OS_DEF_SO_KEEPALIVE SO_KEEPALIVE
344 # define ASIO_OS_DEF_SO_LINGER SO_LINGER
345 # define ASIO_OS_DEF_SO_SNDBUF SO_SNDBUF
346 # define ASIO_OS_DEF_SO_RCVBUF SO_RCVBUF
347 # define ASIO_OS_DEF_SO_SNDLOWAT SO_SNDLOWAT
348 # define ASIO_OS_DEF_SO_RCVLOWAT SO_RCVLOWAT
349 # define ASIO_OS_DEF_SO_REUSEADDR SO_REUSEADDR
350 # define ASIO_OS_DEF_TCP_NODELAY TCP_NODELAY
351 # define ASIO_OS_DEF_IP_MULTICAST_IF IP_MULTICAST_IF
352 # define ASIO_OS_DEF_IP_MULTICAST_TTL IP_MULTICAST_TTL
353 # define ASIO_OS_DEF_IP_MULTICAST_LOOP IP_MULTICAST_LOOP
354 # define ASIO_OS_DEF_IP_ADD_MEMBERSHIP IP_ADD_MEMBERSHIP
355 # define ASIO_OS_DEF_IP_DROP_MEMBERSHIP IP_DROP_MEMBERSHIP
356 # define ASIO_OS_DEF_IP_TTL IP_TTL
357 # define ASIO_OS_DEF_IPV6_UNICAST_HOPS IPV6_UNICAST_HOPS
358 # define ASIO_OS_DEF_IPV6_MULTICAST_IF IPV6_MULTICAST_IF
359 # define ASIO_OS_DEF_IPV6_MULTICAST_HOPS IPV6_MULTICAST_HOPS
360 # define ASIO_OS_DEF_IPV6_MULTICAST_LOOP IPV6_MULTICAST_LOOP
361 # define ASIO_OS_DEF_IPV6_JOIN_GROUP IPV6_JOIN_GROUP
362 # define ASIO_OS_DEF_IPV6_LEAVE_GROUP IPV6_LEAVE_GROUP
363 # define ASIO_OS_DEF_AI_CANONNAME AI_CANONNAME
364 # define ASIO_OS_DEF_AI_PASSIVE AI_PASSIVE
365 # define ASIO_OS_DEF_AI_NUMERICHOST AI_NUMERICHOST
366 # if defined(AI_NUMERICSERV)
367 # define ASIO_OS_DEF_AI_NUMERICSERV AI_NUMERICSERV
368 # else
369 # define ASIO_OS_DEF_AI_NUMERICSERV 0
370 # endif
371 // Note: QNX Neutrino 6.3 defines AI_V4MAPPED, AI_ALL and AI_ADDRCONFIG but
372 // does not implement them. Therefore they are specifically excluded here.
373 # if defined(AI_V4MAPPED) && !defined(__QNXNTO__)
374 # define ASIO_OS_DEF_AI_V4MAPPED AI_V4MAPPED
375 # else
376 # define ASIO_OS_DEF_AI_V4MAPPED 0
377 # endif
378 # if defined(AI_ALL) && !defined(__QNXNTO__)
379 # define ASIO_OS_DEF_AI_ALL AI_ALL
380 # else
381 # define ASIO_OS_DEF_AI_ALL 0
382 # endif
383 # if defined(AI_ADDRCONFIG) && !defined(__QNXNTO__)
384 # define ASIO_OS_DEF_AI_ADDRCONFIG AI_ADDRCONFIG
385 # else
386 # define ASIO_OS_DEF_AI_ADDRCONFIG 0
387 # endif
388 # if defined(IOV_MAX)
389 const int max_iov_len = IOV_MAX;
390 # else
391 // POSIX platforms are not required to define IOV_MAX.
392 const int max_iov_len = 16;
393 # endif
394 #endif
395 const int custom_socket_option_level = 0xA5100000;
397 const int always_fail_option = 2;
398 
399 } // namespace detail
400 } // namespace asio
401 
403 
404 #endif // ASIO_DETAIL_SOCKET_TYPES_HPP
ip_mreq in4_mreq_type
in_addr in4_addr_type
const int max_addr_v6_str_len
sockaddr_un sockaddr_un_type
sockaddr_storage sockaddr_storage_type
sockaddr_in sockaddr_in4_type
const int max_addr_v4_str_len
::linger linger_type
sockaddr socket_addr_type
addrinfo addrinfo_type
const int custom_socket_option_level
const int always_fail_option
const int max_iov_len
in6_addr in6_addr_type
ipv6_mreq in6_mreq_type
sockaddr_in6 sockaddr_in6_type
const int invalid_socket
const int enable_connection_aborted_option
const int socket_error_retval
uint32_t u_long_type
uint16_t u_short_type