| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- Linux FreeBSD Solaris Cygwin
- gethostbyname y y y y
- gethostbyname_r n n y -
- gethostbyname2 y y y(*) -
- getaddrinfo y y y -
- res_search (res_*) y y y -
- Linux, Solaris, Cygwin:
- struct sockaddr_in{
- sa_family_t sin_family;
- in_port_t sin_port;
- struct in_addr sin_addr;
- /* ...*/
- };
- FreeBSD:
- struct sockaddr_in {
- u_char sin_len;
- u_char sin_family;
- u_short sin_port;
- struct in_addr sin_addr;
- char sin_zero[8];
- };
- Linux, Solaris, Cygwin:
- struct sockaddr_in6 {
- sa_family_t sin6_family;
- in_port_t sin6_port;
- uint32_t sin6_flowinfo;
- struct in6_addr sin6_addr;
- /*...*/
- };
- FreeBSD:
- struct sockaddr_in6 {
- u_int8_t sin6_len; /* length of this struct(sa_family_t)*/
- u_int8_t sin6_family; /* AF_INET6 (sa_family_t) */
- u_int16_t sin6_port; /* Transport layer port # (in_port_t)*/
- u_int32_t sin6_flowinfo; /* IP6 flow information */
- struct in6_addr sin6_addr; /* IP6 address */
- u_int32_t sin6_scope_id; /* intface scope id */
- };
- sockaddr_in sockaddr_in6
- Linux <netinet/in.h> or <linux/in.h> <netinet/in.h> or <linux/in6.h> (*)
- FreeBSD <netinet/in.h> <netinet6/in6.h>
- Solaris <netinet/in.h> <netinet/in.h>
- Cygwin <netinet/in.h> or <cywin/in.h> <netinet/in.h> or <cygwin/in.h>
- (*) - on linux netinet/in.h -> from GNU libc, linux/in*.h from the kernel.
- struct sockaddr:
- Linux:
- (sa_family_t= unsigned short)
- struct sockaddr {
- sa_family_t sa_family; /* address family, AF_xxx */
- char sa_data[14]; /* 14 bytes of protocol address */
- };
- FreeBSD:
- (sa_family_t = u_char)
- struct sockaddr {
- u_char sa_len; /* total length */
- sa_family_t sa_family; /* address family */
- char sa_data[14]; /* actually longer; address value */
- };
|