]>
Commit | Line | Data |
---|---|---|
b4ba165d AC |
1 | .\" Copyright (c) 2020-2022 by Alejandro Colomar <colomar.6.4.3@gmail.com> |
2 | .\" and Copyright (c) 2020 by Michael Kerrisk <mtk.manpages@gmail.com> | |
3 | .\" | |
5fbde956 | 4 | .\" SPDX-License-Identifier: Linux-man-pages-copyleft |
b4ba165d AC |
5 | .\" |
6 | .\" | |
45186a5d | 7 | .TH SOCKADDR 3type 2022-02-24 "Linux man-pages (unreleased)" |
04c91a35 | 8 | .SH NAME |
3d3f485d | 9 | sockaddr, sockaddr_storage, sockaddr_in, sockaddr_in6, sockaddr_un, socklen_t, |
32cf0d8b | 10 | in_addr, in6_addr, in_addr_t, in_port_t, |
5ddcffba | 11 | \- socket address |
67706947 AC |
12 | .SH LIBRARY |
13 | Standard C library | |
14 | .RI ( libc ) | |
04c91a35 AC |
15 | .SH SYNOPSIS |
16 | .nf | |
17 | .B #include <sys/socket.h> | |
18 | .PP | |
19 | .B struct sockaddr { | |
3d3f485d AC |
20 | .BR " sa_family_t sa_family;" " /* Address family */" |
21 | .BR " char sa_data[];" " /* Socket address */" | |
04c91a35 | 22 | .B }; |
7fc1ad39 | 23 | .PP |
bbb0155b | 24 | .B struct sockaddr_storage { |
3d3f485d | 25 | .BR " sa_family_t ss_family;" " /* Address family */" |
bbb0155b AC |
26 | .B }; |
27 | .PP | |
7fc1ad39 | 28 | .BR typedef " /* ... */ " socklen_t; |
ea8bd4ff | 29 | .BR typedef " /* ... */ " sa_family_t; |
77f4a0eb AC |
30 | .PP |
31 | .fi | |
5ddcffba AC |
32 | .SS Internet domain sockets |
33 | .nf | |
34 | .B #include <netinet/in.h> | |
35 | .PP | |
36 | .B struct sockaddr_in { | |
3d3f485d AC |
37 | .BR " sa_family_t sin_family;" " /* " AF_INET " */" |
38 | .BR " in_port_t sin_port;" " /* Port number */" | |
39 | .BR " struct in_addr sin_addr;" " /* IPv4 address */" | |
40 | .B }; | |
41 | .PP | |
42 | .B struct sockaddr_in6 { | |
43 | .BR " sa_family_t sin6_family;" " /* " AF_INET6 " */" | |
44 | .BR " in_port_t sin6_port;" " /* Port number */" | |
45 | .BR " uint32_t sin6_flowinfo;" " /* IPv6 flow info */" | |
46 | .BR " struct in6_addr sin6_addr;" " /* IPv6 address */" | |
47 | .BR " uint32_t sin6_scope_id;" " /* Set of interfaces for a scope */" | |
5ddcffba | 48 | .B }; |
b4bc9e81 AC |
49 | .PP |
50 | .B struct in_addr { | |
51 | .B " in_addr_t s_addr;" | |
52 | .B }; | |
53 | .PP | |
32cf0d8b AC |
54 | .B struct in6_addr { |
55 | .B " uint8_t s6_addr[16];" | |
56 | .B }; | |
57 | .PP | |
b4bc9e81 AC |
58 | .B typedef uint32_t in_addr_t; |
59 | .B typedef uint16_t in_port_t; | |
5ddcffba | 60 | .fi |
77f4a0eb AC |
61 | .SS UNIX domain sockets |
62 | .nf | |
63 | .B #include <sys/un.h> | |
64 | .PP | |
65 | .B struct sockaddr_un { | |
3d3f485d AC |
66 | .BR " sa_family_t sun_family;" " /* Address family */" |
67 | .BR " char sun_path[];" " /* Socket pathname */" | |
77f4a0eb | 68 | .B }; |
04c91a35 AC |
69 | .fi |
70 | .SH DESCRIPTION | |
7fc1ad39 AC |
71 | .TP |
72 | .I sockaddr | |
04c91a35 | 73 | Describes a socket address. |
7fc1ad39 | 74 | .TP |
bbb0155b | 75 | .I sockaddr_storage |
728c2f35 | 76 | A structure at least as large as any other |
bbb0155b AC |
77 | .IR sockaddr_ * |
78 | address structures. | |
79 | It's aligned so that a pointer to it can be cast | |
80 | as a pointer to other | |
81 | .IR sockaddr_ * | |
82 | structures and used to access its fields. | |
83 | .TP | |
7fc1ad39 AC |
84 | .I socklen_t |
85 | Describes the length of a socket address. | |
728c2f35 | 86 | This is an integer type of at least 32 bits. |
ea8bd4ff AC |
87 | .TP |
88 | .I sa_family_t | |
89 | Describes a socket's protocol family. | |
90 | This is an unsigned integer type. | |
5ddcffba AC |
91 | .SS Internet domain sockets |
92 | .TP | |
93 | .I sockaddr_in | |
3d3f485d | 94 | Describes an IPv4 Internet domain socket address. |
728c2f35 | 95 | The |
b4bc9e81 AC |
96 | .I sin_port |
97 | and | |
98 | .I sin_addr | |
728c2f35 | 99 | members are stored in network byte order. |
3d3f485d AC |
100 | .TP |
101 | .I sockaddr_in6 | |
102 | Describes an IPv6 Internet domain socket address. | |
728c2f35 | 103 | The |
32cf0d8b AC |
104 | .I sin6_addr.s6_addr |
105 | array is used to contain a 128-bit IPv6 address, | |
106 | stored in network byte order. | |
77f4a0eb AC |
107 | .SS UNIX domain sockets |
108 | .TP | |
109 | .I sockaddr_un | |
110 | Describes a UNIX domain socket address. | |
3113c7f3 | 111 | .SH STANDARDS |
04c91a35 | 112 | POSIX.1-2001 and later. |
7fc1ad39 AC |
113 | .SH NOTES |
114 | .I socklen_t | |
115 | is also defined in | |
116 | .IR <netdb.h> . | |
ea8bd4ff AC |
117 | .PP |
118 | .I sa_family_t | |
119 | is also defined in | |
120 | .I <netinet/in.h> | |
121 | and | |
122 | .IR <sys/un.h> . | |
04c91a35 AC |
123 | .SH SEE ALSO |
124 | .BR accept (2), | |
7fc1ad39 AC |
125 | .BR bind (2), |
126 | .BR connect (2), | |
04c91a35 AC |
127 | .BR getpeername (2), |
128 | .BR getsockname (2), | |
5ddcffba AC |
129 | .BR getsockopt (2), |
130 | .BR sendto (2), | |
131 | .BR setsockopt (2), | |
7fc1ad39 | 132 | .BR socket (2), |
77f4a0eb | 133 | .BR socketpair (2), |
bbb0155b | 134 | .BR getaddrinfo (3), |
7fc1ad39 | 135 | .BR gethostbyaddr (3), |
bbb0155b | 136 | .BR getnameinfo (3), |
b4bc9e81 | 137 | .BR htonl (3), |
bbb0155b AC |
138 | .BR ipv6 (7), |
139 | .BR socket (7) |