2 from _typeshed import ReadableBuffer, Self, WriteableBuffer
3 from collections.abc import Iterable
4 from enum import IntEnum, IntFlag
5 from io import RawIOBase
6 from typing import Any, BinaryIO, TextIO, TypeVar, overload
7 from typing_extensions import Literal
9 # Ideally, we'd just do "from _socket import *". Unfortunately, socket
10 # overrides some definitions from _socket incompatibly. mypy incorrectly
11 # prefers the definitions from _socket over those defined here.
16 CMSG_SPACE as CMSG_SPACE,
17 EAI_ADDRFAMILY as EAI_ADDRFAMILY,
18 EAI_AGAIN as EAI_AGAIN,
19 EAI_BADFLAGS as EAI_BADFLAGS,
20 EAI_BADHINTS as EAI_BADHINTS,
22 EAI_FAMILY as EAI_FAMILY,
24 EAI_MEMORY as EAI_MEMORY,
25 EAI_NODATA as EAI_NODATA,
26 EAI_NONAME as EAI_NONAME,
27 EAI_OVERFLOW as EAI_OVERFLOW,
28 EAI_PROTOCOL as EAI_PROTOCOL,
29 EAI_SERVICE as EAI_SERVICE,
30 EAI_SOCKTYPE as EAI_SOCKTYPE,
31 EAI_SYSTEM as EAI_SYSTEM,
32 INADDR_ALLHOSTS_GROUP as INADDR_ALLHOSTS_GROUP,
33 INADDR_ANY as INADDR_ANY,
34 INADDR_BROADCAST as INADDR_BROADCAST,
35 INADDR_LOOPBACK as INADDR_LOOPBACK,
36 INADDR_MAX_LOCAL_GROUP as INADDR_MAX_LOCAL_GROUP,
37 INADDR_NONE as INADDR_NONE,
38 INADDR_UNSPEC_GROUP as INADDR_UNSPEC_GROUP,
39 IP_ADD_MEMBERSHIP as IP_ADD_MEMBERSHIP,
40 IP_DEFAULT_MULTICAST_LOOP as IP_DEFAULT_MULTICAST_LOOP,
41 IP_DEFAULT_MULTICAST_TTL as IP_DEFAULT_MULTICAST_TTL,
42 IP_DROP_MEMBERSHIP as IP_DROP_MEMBERSHIP,
43 IP_HDRINCL as IP_HDRINCL,
44 IP_MAX_MEMBERSHIPS as IP_MAX_MEMBERSHIPS,
45 IP_MULTICAST_IF as IP_MULTICAST_IF,
46 IP_MULTICAST_LOOP as IP_MULTICAST_LOOP,
47 IP_MULTICAST_TTL as IP_MULTICAST_TTL,
48 IP_OPTIONS as IP_OPTIONS,
49 IP_RECVDSTADDR as IP_RECVDSTADDR,
50 IP_RECVOPTS as IP_RECVOPTS,
51 IP_RECVRETOPTS as IP_RECVRETOPTS,
52 IP_RETOPTS as IP_RETOPTS,
54 IP_TRANSPARENT as IP_TRANSPARENT,
56 IPPORT_RESERVED as IPPORT_RESERVED,
57 IPPORT_USERRESERVED as IPPORT_USERRESERVED,
58 IPPROTO_AH as IPPROTO_AH,
59 IPPROTO_BIP as IPPROTO_BIP,
60 IPPROTO_DSTOPTS as IPPROTO_DSTOPTS,
61 IPPROTO_EGP as IPPROTO_EGP,
62 IPPROTO_EON as IPPROTO_EON,
63 IPPROTO_ESP as IPPROTO_ESP,
64 IPPROTO_FRAGMENT as IPPROTO_FRAGMENT,
65 IPPROTO_GGP as IPPROTO_GGP,
66 IPPROTO_GRE as IPPROTO_GRE,
67 IPPROTO_HELLO as IPPROTO_HELLO,
68 IPPROTO_HOPOPTS as IPPROTO_HOPOPTS,
69 IPPROTO_ICMP as IPPROTO_ICMP,
70 IPPROTO_ICMPV6 as IPPROTO_ICMPV6,
71 IPPROTO_IDP as IPPROTO_IDP,
72 IPPROTO_IGMP as IPPROTO_IGMP,
73 IPPROTO_IP as IPPROTO_IP,
74 IPPROTO_IPCOMP as IPPROTO_IPCOMP,
75 IPPROTO_IPIP as IPPROTO_IPIP,
76 IPPROTO_IPV4 as IPPROTO_IPV4,
77 IPPROTO_IPV6 as IPPROTO_IPV6,
78 IPPROTO_MAX as IPPROTO_MAX,
79 IPPROTO_MOBILE as IPPROTO_MOBILE,
80 IPPROTO_ND as IPPROTO_ND,
81 IPPROTO_NONE as IPPROTO_NONE,
82 IPPROTO_PIM as IPPROTO_PIM,
83 IPPROTO_PUP as IPPROTO_PUP,
84 IPPROTO_RAW as IPPROTO_RAW,
85 IPPROTO_ROUTING as IPPROTO_ROUTING,
86 IPPROTO_RSVP as IPPROTO_RSVP,
87 IPPROTO_SCTP as IPPROTO_SCTP,
88 IPPROTO_TCP as IPPROTO_TCP,
89 IPPROTO_TP as IPPROTO_TP,
90 IPPROTO_UDP as IPPROTO_UDP,
91 IPPROTO_VRRP as IPPROTO_VRRP,
92 IPPROTO_XTP as IPPROTO_XTP,
93 IPV6_CHECKSUM as IPV6_CHECKSUM,
94 IPV6_DONTFRAG as IPV6_DONTFRAG,
95 IPV6_DSTOPTS as IPV6_DSTOPTS,
96 IPV6_HOPLIMIT as IPV6_HOPLIMIT,
97 IPV6_HOPOPTS as IPV6_HOPOPTS,
98 IPV6_JOIN_GROUP as IPV6_JOIN_GROUP,
99 IPV6_LEAVE_GROUP as IPV6_LEAVE_GROUP,
100 IPV6_MULTICAST_HOPS as IPV6_MULTICAST_HOPS,
101 IPV6_MULTICAST_IF as IPV6_MULTICAST_IF,
102 IPV6_MULTICAST_LOOP as IPV6_MULTICAST_LOOP,
103 IPV6_NEXTHOP as IPV6_NEXTHOP,
104 IPV6_PATHMTU as IPV6_PATHMTU,
105 IPV6_PKTINFO as IPV6_PKTINFO,
106 IPV6_RECVDSTOPTS as IPV6_RECVDSTOPTS,
107 IPV6_RECVHOPLIMIT as IPV6_RECVHOPLIMIT,
108 IPV6_RECVHOPOPTS as IPV6_RECVHOPOPTS,
109 IPV6_RECVPATHMTU as IPV6_RECVPATHMTU,
110 IPV6_RECVPKTINFO as IPV6_RECVPKTINFO,
111 IPV6_RECVRTHDR as IPV6_RECVRTHDR,
112 IPV6_RECVTCLASS as IPV6_RECVTCLASS,
113 IPV6_RTHDR as IPV6_RTHDR,
114 IPV6_RTHDR_TYPE_0 as IPV6_RTHDR_TYPE_0,
115 IPV6_RTHDRDSTOPTS as IPV6_RTHDRDSTOPTS,
116 IPV6_TCLASS as IPV6_TCLASS,
117 IPV6_UNICAST_HOPS as IPV6_UNICAST_HOPS,
118 IPV6_USE_MIN_MTU as IPV6_USE_MIN_MTU,
119 IPV6_V6ONLY as IPV6_V6ONLY,
120 IPX_TYPE as IPX_TYPE,
121 LOCAL_PEERCRED as LOCAL_PEERCRED,
122 NI_DGRAM as NI_DGRAM,
123 NI_MAXHOST as NI_MAXHOST,
124 NI_MAXSERV as NI_MAXSERV,
125 NI_NAMEREQD as NI_NAMEREQD,
126 NI_NOFQDN as NI_NOFQDN,
127 NI_NUMERICHOST as NI_NUMERICHOST,
128 NI_NUMERICSERV as NI_NUMERICSERV,
129 SCM_CREDENTIALS as SCM_CREDENTIALS,
130 SCM_CREDS as SCM_CREDS,
131 SCM_RIGHTS as SCM_RIGHTS,
133 SHUT_RDWR as SHUT_RDWR,
135 SO_ACCEPTCONN as SO_ACCEPTCONN,
136 SO_BINDTODEVICE as SO_BINDTODEVICE,
137 SO_BROADCAST as SO_BROADCAST,
138 SO_DEBUG as SO_DEBUG,
139 SO_DONTROUTE as SO_DONTROUTE,
140 SO_ERROR as SO_ERROR,
141 SO_EXCLUSIVEADDRUSE as SO_EXCLUSIVEADDRUSE,
142 SO_KEEPALIVE as SO_KEEPALIVE,
143 SO_LINGER as SO_LINGER,
145 SO_OOBINLINE as SO_OOBINLINE,
146 SO_PASSCRED as SO_PASSCRED,
147 SO_PEERCRED as SO_PEERCRED,
148 SO_PRIORITY as SO_PRIORITY,
149 SO_RCVBUF as SO_RCVBUF,
150 SO_RCVLOWAT as SO_RCVLOWAT,
151 SO_RCVTIMEO as SO_RCVTIMEO,
152 SO_REUSEADDR as SO_REUSEADDR,
153 SO_REUSEPORT as SO_REUSEPORT,
154 SO_SETFIB as SO_SETFIB,
155 SO_SNDBUF as SO_SNDBUF,
156 SO_SNDLOWAT as SO_SNDLOWAT,
157 SO_SNDTIMEO as SO_SNDTIMEO,
159 SO_USELOOPBACK as SO_USELOOPBACK,
160 SOL_ATALK as SOL_ATALK,
161 SOL_AX25 as SOL_AX25,
165 SOL_NETROM as SOL_NETROM,
166 SOL_ROSE as SOL_ROSE,
167 SOL_SOCKET as SOL_SOCKET,
170 SOMAXCONN as SOMAXCONN,
171 TCP_CORK as TCP_CORK,
172 TCP_DEFER_ACCEPT as TCP_DEFER_ACCEPT,
173 TCP_FASTOPEN as TCP_FASTOPEN,
174 TCP_INFO as TCP_INFO,
175 TCP_KEEPCNT as TCP_KEEPCNT,
176 TCP_KEEPIDLE as TCP_KEEPIDLE,
177 TCP_KEEPINTVL as TCP_KEEPINTVL,
178 TCP_LINGER2 as TCP_LINGER2,
179 TCP_MAXSEG as TCP_MAXSEG,
180 TCP_NODELAY as TCP_NODELAY,
181 TCP_QUICKACK as TCP_QUICKACK,
182 TCP_SYNCNT as TCP_SYNCNT,
183 TCP_WINDOW_CLAMP as TCP_WINDOW_CLAMP,
184 SocketType as SocketType,
185 _Address as _Address,
186 _RetAddress as _RetAddress,
189 gaierror as gaierror,
190 getdefaulttimeout as getdefaulttimeout,
191 gethostbyaddr as gethostbyaddr,
192 gethostbyname as gethostbyname,
193 gethostbyname_ex as gethostbyname_ex,
194 gethostname as gethostname,
195 getnameinfo as getnameinfo,
196 getprotobyname as getprotobyname,
197 getservbyname as getservbyname,
198 getservbyport as getservbyport,
199 has_ipv6 as has_ipv6,
203 inet_aton as inet_aton,
204 inet_ntoa as inet_ntoa,
205 inet_ntop as inet_ntop,
206 inet_pton as inet_pton,
209 setdefaulttimeout as setdefaulttimeout,
213 if sys.version_info >= (3, 7):
214 from _socket import close as close
215 if sys.platform != "win32":
216 from _socket import sethostname as sethostname
217 if sys.platform != "win32" or sys.version_info >= (3, 8):
218 from _socket import if_indextoname as if_indextoname, if_nameindex as if_nameindex, if_nametoindex as if_nametoindex
219 if sys.platform == "linux":
220 from _socket import (
221 ALG_OP_DECRYPT as ALG_OP_DECRYPT,
222 ALG_OP_ENCRYPT as ALG_OP_ENCRYPT,
223 ALG_OP_SIGN as ALG_OP_SIGN,
224 ALG_OP_VERIFY as ALG_OP_VERIFY,
225 ALG_SET_AEAD_ASSOCLEN as ALG_SET_AEAD_ASSOCLEN,
226 ALG_SET_AEAD_AUTHSIZE as ALG_SET_AEAD_AUTHSIZE,
227 ALG_SET_IV as ALG_SET_IV,
228 ALG_SET_KEY as ALG_SET_KEY,
229 ALG_SET_OP as ALG_SET_OP,
230 ALG_SET_PUBKEY as ALG_SET_PUBKEY,
232 CAN_BCM_RX_CHANGED as CAN_BCM_RX_CHANGED,
233 CAN_BCM_RX_DELETE as CAN_BCM_RX_DELETE,
234 CAN_BCM_RX_READ as CAN_BCM_RX_READ,
235 CAN_BCM_RX_SETUP as CAN_BCM_RX_SETUP,
236 CAN_BCM_RX_STATUS as CAN_BCM_RX_STATUS,
237 CAN_BCM_RX_TIMEOUT as CAN_BCM_RX_TIMEOUT,
238 CAN_BCM_TX_DELETE as CAN_BCM_TX_DELETE,
239 CAN_BCM_TX_EXPIRED as CAN_BCM_TX_EXPIRED,
240 CAN_BCM_TX_READ as CAN_BCM_TX_READ,
241 CAN_BCM_TX_SEND as CAN_BCM_TX_SEND,
242 CAN_BCM_TX_SETUP as CAN_BCM_TX_SETUP,
243 CAN_BCM_TX_STATUS as CAN_BCM_TX_STATUS,
244 CAN_EFF_FLAG as CAN_EFF_FLAG,
245 CAN_EFF_MASK as CAN_EFF_MASK,
246 CAN_ERR_FLAG as CAN_ERR_FLAG,
247 CAN_ERR_MASK as CAN_ERR_MASK,
249 CAN_RAW_ERR_FILTER as CAN_RAW_ERR_FILTER,
250 CAN_RAW_FD_FRAMES as CAN_RAW_FD_FRAMES,
251 CAN_RAW_FILTER as CAN_RAW_FILTER,
252 CAN_RAW_LOOPBACK as CAN_RAW_LOOPBACK,
253 CAN_RAW_RECV_OWN_MSGS as CAN_RAW_RECV_OWN_MSGS,
254 CAN_RTR_FLAG as CAN_RTR_FLAG,
255 CAN_SFF_MASK as CAN_SFF_MASK,
256 PACKET_BROADCAST as PACKET_BROADCAST,
257 PACKET_FASTROUTE as PACKET_FASTROUTE,
258 PACKET_HOST as PACKET_HOST,
259 PACKET_LOOPBACK as PACKET_LOOPBACK,
260 PACKET_MULTICAST as PACKET_MULTICAST,
261 PACKET_OTHERHOST as PACKET_OTHERHOST,
262 PACKET_OUTGOING as PACKET_OUTGOING,
264 PF_PACKET as PF_PACKET,
266 RDS_CANCEL_SENT_TO as RDS_CANCEL_SENT_TO,
267 RDS_CMSG_RDMA_ARGS as RDS_CMSG_RDMA_ARGS,
268 RDS_CMSG_RDMA_DEST as RDS_CMSG_RDMA_DEST,
269 RDS_CMSG_RDMA_MAP as RDS_CMSG_RDMA_MAP,
270 RDS_CMSG_RDMA_STATUS as RDS_CMSG_RDMA_STATUS,
271 RDS_CMSG_RDMA_UPDATE as RDS_CMSG_RDMA_UPDATE,
272 RDS_CONG_MONITOR as RDS_CONG_MONITOR,
273 RDS_FREE_MR as RDS_FREE_MR,
274 RDS_GET_MR as RDS_GET_MR,
275 RDS_GET_MR_FOR_DEST as RDS_GET_MR_FOR_DEST,
276 RDS_RDMA_DONTWAIT as RDS_RDMA_DONTWAIT,
277 RDS_RDMA_FENCE as RDS_RDMA_FENCE,
278 RDS_RDMA_INVALIDATE as RDS_RDMA_INVALIDATE,
279 RDS_RDMA_NOTIFY_ME as RDS_RDMA_NOTIFY_ME,
280 RDS_RDMA_READWRITE as RDS_RDMA_READWRITE,
281 RDS_RDMA_SILENT as RDS_RDMA_SILENT,
282 RDS_RDMA_USE_ONCE as RDS_RDMA_USE_ONCE,
283 RDS_RECVERR as RDS_RECVERR,
285 SOL_CAN_BASE as SOL_CAN_BASE,
286 SOL_CAN_RAW as SOL_CAN_RAW,
288 SOL_TIPC as SOL_TIPC,
289 TIPC_ADDR_ID as TIPC_ADDR_ID,
290 TIPC_ADDR_NAME as TIPC_ADDR_NAME,
291 TIPC_ADDR_NAMESEQ as TIPC_ADDR_NAMESEQ,
292 TIPC_CFG_SRV as TIPC_CFG_SRV,
293 TIPC_CLUSTER_SCOPE as TIPC_CLUSTER_SCOPE,
294 TIPC_CONN_TIMEOUT as TIPC_CONN_TIMEOUT,
295 TIPC_CRITICAL_IMPORTANCE as TIPC_CRITICAL_IMPORTANCE,
296 TIPC_DEST_DROPPABLE as TIPC_DEST_DROPPABLE,
297 TIPC_HIGH_IMPORTANCE as TIPC_HIGH_IMPORTANCE,
298 TIPC_IMPORTANCE as TIPC_IMPORTANCE,
299 TIPC_LOW_IMPORTANCE as TIPC_LOW_IMPORTANCE,
300 TIPC_MEDIUM_IMPORTANCE as TIPC_MEDIUM_IMPORTANCE,
301 TIPC_NODE_SCOPE as TIPC_NODE_SCOPE,
302 TIPC_PUBLISHED as TIPC_PUBLISHED,
303 TIPC_SRC_DROPPABLE as TIPC_SRC_DROPPABLE,
304 TIPC_SUB_CANCEL as TIPC_SUB_CANCEL,
305 TIPC_SUB_PORTS as TIPC_SUB_PORTS,
306 TIPC_SUB_SERVICE as TIPC_SUB_SERVICE,
307 TIPC_SUBSCR_TIMEOUT as TIPC_SUBSCR_TIMEOUT,
308 TIPC_TOP_SRV as TIPC_TOP_SRV,
309 TIPC_WAIT_FOREVER as TIPC_WAIT_FOREVER,
310 TIPC_WITHDRAWN as TIPC_WITHDRAWN,
311 TIPC_ZONE_SCOPE as TIPC_ZONE_SCOPE,
313 if sys.platform == "linux" and sys.version_info >= (3, 7):
314 from _socket import (
315 CAN_ISOTP as CAN_ISOTP,
316 IOCTL_VM_SOCKETS_GET_LOCAL_CID as IOCTL_VM_SOCKETS_GET_LOCAL_CID,
317 SO_VM_SOCKETS_BUFFER_MAX_SIZE as SO_VM_SOCKETS_BUFFER_MAX_SIZE,
318 SO_VM_SOCKETS_BUFFER_MIN_SIZE as SO_VM_SOCKETS_BUFFER_MIN_SIZE,
319 SO_VM_SOCKETS_BUFFER_SIZE as SO_VM_SOCKETS_BUFFER_SIZE,
320 TCP_NOTSENT_LOWAT as TCP_NOTSENT_LOWAT,
321 VM_SOCKETS_INVALID_VERSION as VM_SOCKETS_INVALID_VERSION,
322 VMADDR_CID_ANY as VMADDR_CID_ANY,
323 VMADDR_CID_HOST as VMADDR_CID_HOST,
324 VMADDR_PORT_ANY as VMADDR_PORT_ANY,
326 if sys.platform == "linux" and sys.version_info >= (3, 8):
327 from _socket import (
328 CAN_BCM_CAN_FD_FRAME as CAN_BCM_CAN_FD_FRAME,
329 CAN_BCM_RX_ANNOUNCE_RESUME as CAN_BCM_RX_ANNOUNCE_RESUME,
330 CAN_BCM_RX_CHECK_DLC as CAN_BCM_RX_CHECK_DLC,
331 CAN_BCM_RX_FILTER_ID as CAN_BCM_RX_FILTER_ID,
332 CAN_BCM_RX_NO_AUTOTIMER as CAN_BCM_RX_NO_AUTOTIMER,
333 CAN_BCM_RX_RTR_FRAME as CAN_BCM_RX_RTR_FRAME,
334 CAN_BCM_SETTIMER as CAN_BCM_SETTIMER,
335 CAN_BCM_STARTTIMER as CAN_BCM_STARTTIMER,
336 CAN_BCM_TX_ANNOUNCE as CAN_BCM_TX_ANNOUNCE,
337 CAN_BCM_TX_COUNTEVT as CAN_BCM_TX_COUNTEVT,
338 CAN_BCM_TX_CP_CAN_ID as CAN_BCM_TX_CP_CAN_ID,
339 CAN_BCM_TX_RESET_MULTI_IDX as CAN_BCM_TX_RESET_MULTI_IDX,
341 if sys.platform == "linux" and sys.version_info >= (3, 9):
342 from _socket import (
343 CAN_J1939 as CAN_J1939,
344 CAN_RAW_JOIN_FILTERS as CAN_RAW_JOIN_FILTERS,
345 J1939_EE_INFO_NONE as J1939_EE_INFO_NONE,
346 J1939_EE_INFO_TX_ABORT as J1939_EE_INFO_TX_ABORT,
347 J1939_FILTER_MAX as J1939_FILTER_MAX,
348 J1939_IDLE_ADDR as J1939_IDLE_ADDR,
349 J1939_MAX_UNICAST_ADDR as J1939_MAX_UNICAST_ADDR,
350 J1939_NLA_BYTES_ACKED as J1939_NLA_BYTES_ACKED,
351 J1939_NLA_PAD as J1939_NLA_PAD,
352 J1939_NO_ADDR as J1939_NO_ADDR,
353 J1939_NO_NAME as J1939_NO_NAME,
354 J1939_NO_PGN as J1939_NO_PGN,
355 J1939_PGN_ADDRESS_CLAIMED as J1939_PGN_ADDRESS_CLAIMED,
356 J1939_PGN_ADDRESS_COMMANDED as J1939_PGN_ADDRESS_COMMANDED,
357 J1939_PGN_MAX as J1939_PGN_MAX,
358 J1939_PGN_PDU1_MAX as J1939_PGN_PDU1_MAX,
359 J1939_PGN_REQUEST as J1939_PGN_REQUEST,
360 SCM_J1939_DEST_ADDR as SCM_J1939_DEST_ADDR,
361 SCM_J1939_DEST_NAME as SCM_J1939_DEST_NAME,
362 SCM_J1939_ERRQUEUE as SCM_J1939_ERRQUEUE,
363 SCM_J1939_PRIO as SCM_J1939_PRIO,
364 SO_J1939_ERRQUEUE as SO_J1939_ERRQUEUE,
365 SO_J1939_FILTER as SO_J1939_FILTER,
366 SO_J1939_PROMISC as SO_J1939_PROMISC,
367 SO_J1939_SEND_PRIO as SO_J1939_SEND_PRIO,
369 if sys.platform == "win32":
370 from _socket import (
371 RCVALL_IPLEVEL as RCVALL_IPLEVEL,
372 RCVALL_MAX as RCVALL_MAX,
373 RCVALL_OFF as RCVALL_OFF,
374 RCVALL_ON as RCVALL_ON,
375 RCVALL_SOCKETLEVELONLY as RCVALL_SOCKETLEVELONLY,
376 SIO_KEEPALIVE_VALS as SIO_KEEPALIVE_VALS,
377 SIO_LOOPBACK_FAST_PATH as SIO_LOOPBACK_FAST_PATH,
378 SIO_RCVALL as SIO_RCVALL,
383 # Re-exported from errno
388 class AddressFamily(IntEnum):
427 AF_UNIX: AddressFamily
428 AF_INET: AddressFamily
429 AF_INET6: AddressFamily
430 AF_AAL5: AddressFamily
431 AF_APPLETALK: AddressFamily
432 AF_ASH: AddressFamily
433 AF_ATMPVC: AddressFamily
434 AF_ATMSVC: AddressFamily
435 AF_AX25: AddressFamily
436 AF_BRIDGE: AddressFamily
437 AF_DECnet: AddressFamily
438 AF_ECONET: AddressFamily
439 AF_IPX: AddressFamily
440 AF_IRDA: AddressFamily
441 AF_KEY: AddressFamily
442 AF_LLC: AddressFamily
443 AF_NETBEUI: AddressFamily
444 AF_NETROM: AddressFamily
445 AF_PPPOX: AddressFamily
446 AF_ROSE: AddressFamily
447 AF_ROUTE: AddressFamily
448 AF_SECURITY: AddressFamily
449 AF_SNA: AddressFamily
450 AF_SYSTEM: AddressFamily
451 AF_UNSPEC: AddressFamily
452 AF_WANPIPE: AddressFamily
453 AF_X25: AddressFamily
454 if sys.platform == "linux":
455 AF_CAN: AddressFamily
456 AF_PACKET: AddressFamily
457 AF_RDS: AddressFamily
458 AF_TIPC: AddressFamily
459 AF_ALG: AddressFamily
460 AF_NETLINK: AddressFamily
461 if sys.version_info >= (3, 7):
462 AF_VSOCK: AddressFamily
463 if sys.version_info >= (3, 8):
464 AF_QIPCRTR: AddressFamily
465 AF_LINK: AddressFamily # availability: BSD, macOS
466 if sys.platform != "win32" and sys.platform != "darwin":
467 AF_BLUETOOTH: AddressFamily
469 class SocketKind(IntEnum):
478 SOCK_STREAM: SocketKind
479 SOCK_DGRAM: SocketKind
482 SOCK_SEQPACKET: SocketKind
483 if sys.platform == "linux":
484 SOCK_CLOEXEC: SocketKind
485 SOCK_NONBLOCK: SocketKind
487 class MsgFlag(IntFlag):
499 MSG_CMSG_CLOEXEC: MsgFlag
502 MSG_DONTROUTE: MsgFlag
503 MSG_DONTWAIT: MsgFlag
506 MSG_ERRQUEUE: MsgFlag
508 MSG_FASTOPEN: MsgFlag
511 MSG_NOSIGNAL: MsgFlag
512 MSG_NOTIFICATION: MsgFlag
518 class AddressInfo(IntFlag):
527 AI_ADDRCONFIG: AddressInfo
529 AI_CANONNAME: AddressInfo
530 AI_DEFAULT: AddressInfo
532 AI_NUMERICHOST: AddressInfo
533 AI_NUMERICSERV: AddressInfo
534 AI_PASSIVE: AddressInfo
535 AI_V4MAPPED: AddressInfo
536 AI_V4MAPPED_CFG: AddressInfo
538 if sys.platform == "win32":
539 errorTab: dict[int, str] # undocumented
541 class socket(_socket.socket):
543 self, family: AddressFamily | int = ..., type: SocketKind | int = ..., proto: int = ..., fileno: int | None = ...
545 def __enter__(self: Self) -> Self: ...
546 def __exit__(self, *args: object) -> None: ...
547 def dup(self: _T) -> _T: ... # noqa: F811
548 def accept(self) -> tuple[socket, _RetAddress]: ...
549 # Note that the makefile's documented windows-specific behavior is not represented
550 # mode strings with duplicates are intentionally excluded
554 mode: Literal["r", "w", "rw", "wr", ""] = ...,
555 buffering: int | None = ...,
557 encoding: str | None = ...,
558 errors: str | None = ...,
559 newline: str | None = ...,
564 mode: Literal["b", "rb", "br", "wb", "bw", "rwb", "rbw", "wrb", "wbr", "brw", "bwr"],
565 buffering: int | None = ...,
567 encoding: str | None = ...,
568 errors: str | None = ...,
569 newline: str | None = ...,
571 def sendfile(self, file: BinaryIO, offset: int = ..., count: int | None = ...) -> int: ...
573 def family(self) -> AddressFamily: ... # type: ignore
575 def type(self) -> SocketKind: ... # type: ignore
576 def get_inheritable(self) -> bool: ...
577 def set_inheritable(self, inheritable: bool) -> None: ...
579 def fromfd(fd: _FD, family: AddressFamily | int, type: SocketKind | int, proto: int = ...) -> socket: ...
581 if sys.platform != "win32":
582 if sys.version_info >= (3, 9):
583 # flags and address appear to be unused in send_fds and recv_fds
585 sock: socket, buffers: Iterable[bytes], fds: bytes | Iterable[int], flags: int = ..., address: None = ...
587 def recv_fds(sock: socket, bufsize: int, maxfds: int, flags: int = ...) -> tuple[bytes, list[int], int, Any]: ...
589 if sys.platform == "win32":
590 def fromshare(info: bytes) -> socket: ...
592 if sys.platform == "win32":
593 def socketpair(family: int = ..., type: int = ..., proto: int = ...) -> tuple[socket, socket]: ...
596 def socketpair( # type: ignore
597 family: int | AddressFamily | None = ..., type: SocketType | int = ..., proto: int = ...
598 ) -> tuple[socket, socket]: ...
600 class SocketIO(RawIOBase):
601 def __init__(self, sock: socket, mode: Literal["r", "w", "rw", "rb", "wb", "rwb"]) -> None: ...
602 def readinto(self, b: WriteableBuffer) -> int | None: ...
603 def write(self, b: ReadableBuffer) -> int | None: ...
605 def name(self) -> int: ... # return value is really "int"
607 def mode(self) -> Literal["rb", "wb", "rwb"]: ...
609 def getfqdn(name: str = ...) -> str: ...
610 def create_connection(
611 address: tuple[str | None, int],
612 timeout: float | None = ..., # noqa: F811
613 source_address: tuple[bytearray | bytes | str, int] | None = ...,
616 if sys.version_info >= (3, 8):
617 def has_dualstack_ipv6() -> bool: ...
619 address: _Address, *, family: int = ..., backlog: int | None = ..., reuse_port: bool = ..., dualstack_ipv6: bool = ...
622 # the 5th tuple item is an address
624 host: bytearray | bytes | str | None,
625 port: str | int | None,
630 ) -> list[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int]]]: ...