1import sys 2from _typeshed import ReadableBuffer, Self, WriteableBuffer 3from collections.abc import Iterable 4from enum import IntEnum, IntFlag 5from io import RawIOBase 6from typing import Any, BinaryIO, Optional, TextIO, TypeVar, Union, overload 7from typing_extensions import Literal 8 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. 12import _socket 13from _socket import ( 14 _FD, 15 CMSG_LEN as CMSG_LEN, 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, 21 EAI_FAIL as EAI_FAIL, 22 EAI_FAMILY as EAI_FAMILY, 23 EAI_MAX as EAI_MAX, 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, 53 IP_TOS as IP_TOS, 54 IP_TRANSPARENT as IP_TRANSPARENT, 55 IP_TTL as IP_TTL, 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, 132 SHUT_RD as SHUT_RD, 133 SHUT_RDWR as SHUT_RDWR, 134 SHUT_WR as SHUT_WR, 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, 144 SO_MARK as SO_MARK, 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, 158 SO_TYPE as SO_TYPE, 159 SO_USELOOPBACK as SO_USELOOPBACK, 160 SOL_ATALK as SOL_ATALK, 161 SOL_AX25 as SOL_AX25, 162 SOL_HCI as SOL_HCI, 163 SOL_IP as SOL_IP, 164 SOL_IPX as SOL_IPX, 165 SOL_NETROM as SOL_NETROM, 166 SOL_ROSE as SOL_ROSE, 167 SOL_SOCKET as SOL_SOCKET, 168 SOL_TCP as SOL_TCP, 169 SOL_UDP as SOL_UDP, 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, 187 dup as dup, 188 error as error, 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, 200 herror as herror, 201 htonl as htonl, 202 htons as htons, 203 inet_aton as inet_aton, 204 inet_ntoa as inet_ntoa, 205 inet_ntop as inet_ntop, 206 inet_pton as inet_pton, 207 ntohl as ntohl, 208 ntohs as ntohs, 209 setdefaulttimeout as setdefaulttimeout, 210 timeout as timeout, 211) 212 213if sys.version_info >= (3, 7): 214 from _socket import close as close 215if sys.platform != "win32": 216 from _socket import sethostname as sethostname 217if 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 219if 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, 231 CAN_BCM as CAN_BCM, 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, 248 CAN_RAW as CAN_RAW, 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, 263 PF_CAN as PF_CAN, 264 PF_PACKET as PF_PACKET, 265 PF_RDS as PF_RDS, 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, 284 SOL_ALG as SOL_ALG, 285 SOL_CAN_BASE as SOL_CAN_BASE, 286 SOL_CAN_RAW as SOL_CAN_RAW, 287 SOL_RDS as SOL_RDS, 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, 312 ) 313if 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, 325 ) 326if 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, 340 ) 341if sys.platform == "linux" and sys.version_info >= (3, 9): 342 from _socket import ( 343 CAN_J1939 as CAN_J1939, 344 J1939_EE_INFO_NONE as J1939_EE_INFO_NONE, 345 J1939_EE_INFO_TX_ABORT as J1939_EE_INFO_TX_ABORT, 346 J1939_FILTER_MAX as J1939_FILTER_MAX, 347 J1939_IDLE_ADDR as J1939_IDLE_ADDR, 348 J1939_MAX_UNICAST_ADDR as J1939_MAX_UNICAST_ADDR, 349 J1939_NLA_BYTES_ACKED as J1939_NLA_BYTES_ACKED, 350 J1939_NLA_PAD as J1939_NLA_PAD, 351 J1939_NO_ADDR as J1939_NO_ADDR, 352 J1939_NO_NAME as J1939_NO_NAME, 353 J1939_NO_PGN as J1939_NO_PGN, 354 J1939_PGN_ADDRESS_CLAIMED as J1939_PGN_ADDRESS_CLAIMED, 355 J1939_PGN_ADDRESS_COMMANDED as J1939_PGN_ADDRESS_COMMANDED, 356 J1939_PGN_MAX as J1939_PGN_MAX, 357 J1939_PGN_PDU1_MAX as J1939_PGN_PDU1_MAX, 358 J1939_PGN_REQUEST as J1939_PGN_REQUEST, 359 SCM_J1939_DEST_ADDR as SCM_J1939_DEST_ADDR, 360 SCM_J1939_DEST_NAME as SCM_J1939_DEST_NAME, 361 SCM_J1939_ERRQUEUE as SCM_J1939_ERRQUEUE, 362 SCM_J1939_PRIO as SCM_J1939_PRIO, 363 SO_J1939_ERRQUEUE as SO_J1939_ERRQUEUE, 364 SO_J1939_FILTER as SO_J1939_FILTER, 365 SO_J1939_PROMISC as SO_J1939_PROMISC, 366 SO_J1939_SEND_PRIO as SO_J1939_SEND_PRIO, 367 ) 368if sys.platform == "win32": 369 from _socket import ( 370 RCVALL_IPLEVEL as RCVALL_IPLEVEL, 371 RCVALL_MAX as RCVALL_MAX, 372 RCVALL_OFF as RCVALL_OFF, 373 RCVALL_ON as RCVALL_ON, 374 RCVALL_SOCKETLEVELONLY as RCVALL_SOCKETLEVELONLY, 375 SIO_KEEPALIVE_VALS as SIO_KEEPALIVE_VALS, 376 SIO_LOOPBACK_FAST_PATH as SIO_LOOPBACK_FAST_PATH, 377 SIO_RCVALL as SIO_RCVALL, 378 ) 379 380_T = TypeVar("_T") 381 382# Re-exported from errno 383EBADF: int 384EAGAIN: int 385EWOULDBLOCK: int 386 387class AddressFamily(IntEnum): 388 AF_UNIX: int 389 AF_INET: int 390 AF_INET6: int 391 AF_AAL5: int 392 AF_ALG: int 393 AF_APPLETALK: int 394 AF_ASH: int 395 AF_ATMPVC: int 396 AF_ATMSVC: int 397 AF_AX25: int 398 AF_BLUETOOTH: int 399 AF_BRIDGE: int 400 AF_CAN: int 401 AF_DECnet: int 402 AF_ECONET: int 403 AF_IPX: int 404 AF_IRDA: int 405 AF_KEY: int 406 AF_LINK: int 407 AF_LLC: int 408 AF_NETBEUI: int 409 AF_NETLINK: int 410 AF_NETROM: int 411 AF_PACKET: int 412 AF_PPPOX: int 413 AF_QIPCRTR: int 414 AF_RDS: int 415 AF_ROSE: int 416 AF_ROUTE: int 417 AF_SECURITY: int 418 AF_SNA: int 419 AF_SYSTEM: int 420 AF_TIPC: int 421 AF_UNSPEC: int 422 AF_VSOCK: int 423 AF_WANPIPE: int 424 AF_X25: int 425 426AF_UNIX: AddressFamily 427AF_INET: AddressFamily 428AF_INET6: AddressFamily 429AF_AAL5: AddressFamily 430AF_APPLETALK: AddressFamily 431AF_ASH: AddressFamily 432AF_ATMPVC: AddressFamily 433AF_ATMSVC: AddressFamily 434AF_AX25: AddressFamily 435AF_BRIDGE: AddressFamily 436AF_DECnet: AddressFamily 437AF_ECONET: AddressFamily 438AF_IPX: AddressFamily 439AF_IRDA: AddressFamily 440AF_KEY: AddressFamily 441AF_LLC: AddressFamily 442AF_NETBEUI: AddressFamily 443AF_NETROM: AddressFamily 444AF_PPPOX: AddressFamily 445AF_ROSE: AddressFamily 446AF_ROUTE: AddressFamily 447AF_SECURITY: AddressFamily 448AF_SNA: AddressFamily 449AF_SYSTEM: AddressFamily 450AF_UNSPEC: AddressFamily 451AF_WANPIPE: AddressFamily 452AF_X25: AddressFamily 453if sys.platform == "linux": 454 AF_CAN: AddressFamily 455 AF_PACKET: AddressFamily 456 AF_RDS: AddressFamily 457 AF_TIPC: AddressFamily 458 AF_ALG: AddressFamily 459 AF_NETLINK: AddressFamily 460 if sys.version_info >= (3, 7): 461 AF_VSOCK: AddressFamily 462 if sys.version_info >= (3, 8): 463 AF_QIPCRTR: AddressFamily 464AF_LINK: AddressFamily # availability: BSD, macOS 465if sys.platform != "win32" and sys.platform != "darwin": 466 AF_BLUETOOTH: AddressFamily 467 468class SocketKind(IntEnum): 469 SOCK_STREAM: int 470 SOCK_DGRAM: int 471 SOCK_RAW: int 472 SOCK_RDM: int 473 SOCK_SEQPACKET: int 474 SOCK_CLOEXEC: int 475 SOCK_NONBLOCK: int 476 477SOCK_STREAM: SocketKind 478SOCK_DGRAM: SocketKind 479SOCK_RAW: SocketKind 480SOCK_RDM: SocketKind 481SOCK_SEQPACKET: SocketKind 482if sys.platform == "linux": 483 SOCK_CLOEXEC: SocketKind 484 SOCK_NONBLOCK: SocketKind 485 486class MsgFlag(IntFlag): 487 MSG_CTRUNC: int 488 MSG_DONTROUTE: int 489 MSG_DONTWAIT: int 490 MSG_EOR: int 491 MSG_OOB: int 492 MSG_PEEK: int 493 MSG_TRUNC: int 494 MSG_WAITALL: int 495 496MSG_BCAST: MsgFlag 497MSG_BTAG: MsgFlag 498MSG_CMSG_CLOEXEC: MsgFlag 499MSG_CONFIRM: MsgFlag 500MSG_CTRUNC: MsgFlag 501MSG_DONTROUTE: MsgFlag 502MSG_DONTWAIT: MsgFlag 503MSG_EOF: MsgFlag 504MSG_EOR: MsgFlag 505MSG_ERRQUEUE: MsgFlag 506MSG_ETAG: MsgFlag 507MSG_FASTOPEN: MsgFlag 508MSG_MCAST: MsgFlag 509MSG_MORE: MsgFlag 510MSG_NOSIGNAL: MsgFlag 511MSG_NOTIFICATION: MsgFlag 512MSG_OOB: MsgFlag 513MSG_PEEK: MsgFlag 514MSG_TRUNC: MsgFlag 515MSG_WAITALL: MsgFlag 516 517class AddressInfo(IntFlag): 518 AI_ADDRCONFIG: int 519 AI_ALL: int 520 AI_CANONNAME: int 521 AI_NUMERICHOST: int 522 AI_NUMERICSERV: int 523 AI_PASSIVE: int 524 AI_V4MAPPED: int 525 526AI_ADDRCONFIG: AddressInfo 527AI_ALL: AddressInfo 528AI_CANONNAME: AddressInfo 529AI_DEFAULT: AddressInfo 530AI_MASK: AddressInfo 531AI_NUMERICHOST: AddressInfo 532AI_NUMERICSERV: AddressInfo 533AI_PASSIVE: AddressInfo 534AI_V4MAPPED: AddressInfo 535AI_V4MAPPED_CFG: AddressInfo 536 537if sys.platform == "win32": 538 errorTab: dict[int, str] # undocumented 539 540class socket(_socket.socket): 541 def __init__( 542 self, 543 family: Union[AddressFamily, int] = ..., 544 type: Union[SocketKind, int] = ..., 545 proto: int = ..., 546 fileno: Optional[int] = ..., 547 ) -> None: ... 548 def __enter__(self: Self) -> Self: ... 549 def __exit__(self, *args: object) -> None: ... 550 def dup(self: _T) -> _T: ... # noqa: F811 551 def accept(self) -> tuple[socket, _RetAddress]: ... 552 # Note that the makefile's documented windows-specific behavior is not represented 553 # mode strings with duplicates are intentionally excluded 554 @overload 555 def makefile( 556 self, 557 mode: Literal["r", "w", "rw", "wr", ""] = ..., 558 buffering: Optional[int] = ..., 559 *, 560 encoding: Optional[str] = ..., 561 errors: Optional[str] = ..., 562 newline: Optional[str] = ..., 563 ) -> TextIO: ... 564 @overload 565 def makefile( 566 self, 567 mode: Literal["b", "rb", "br", "wb", "bw", "rwb", "rbw", "wrb", "wbr", "brw", "bwr"], 568 buffering: Optional[int] = ..., 569 *, 570 encoding: Optional[str] = ..., 571 errors: Optional[str] = ..., 572 newline: Optional[str] = ..., 573 ) -> BinaryIO: ... 574 def sendfile(self, file: BinaryIO, offset: int = ..., count: Optional[int] = ...) -> int: ... 575 @property 576 def family(self) -> AddressFamily: ... # type: ignore 577 @property 578 def type(self) -> SocketKind: ... # type: ignore 579 def get_inheritable(self) -> bool: ... 580 def set_inheritable(self, inheritable: bool) -> None: ... 581 582def fromfd(fd: _FD, family: AddressFamily | int, type: SocketKind | int, proto: int = ...) -> socket: ... 583 584if sys.platform != "win32": 585 if sys.version_info >= (3, 9): 586 # flags and address appear to be unused in send_fds and recv_fds 587 def send_fds( 588 sock: socket, buffers: Iterable[bytes], fds: Union[bytes, Iterable[int]], flags: int = ..., address: None = ... 589 ) -> int: ... 590 def recv_fds(sock: socket, bufsize: int, maxfds: int, flags: int = ...) -> tuple[bytes, list[int], int, Any]: ... 591 592if sys.platform == "win32": 593 def fromshare(info: bytes) -> socket: ... 594 595if sys.platform == "win32": 596 def socketpair(family: int = ..., type: int = ..., proto: int = ...) -> tuple[socket, socket]: ... 597 598else: 599 def socketpair( # type: ignore 600 family: Union[int, AddressFamily, None] = ..., type: Union[SocketType, int] = ..., proto: int = ... 601 ) -> tuple[socket, socket]: ... 602 603class SocketIO(RawIOBase): 604 def __init__(self, sock: socket, mode: Literal["r", "w", "rw", "rb", "wb", "rwb"]) -> None: ... 605 def readinto(self, b: WriteableBuffer) -> Optional[int]: ... 606 def write(self, b: ReadableBuffer) -> Optional[int]: ... 607 @property 608 def name(self) -> int: ... # return value is really "int" 609 @property 610 def mode(self) -> Literal["rb", "wb", "rwb"]: ... 611 612def getfqdn(name: str = ...) -> str: ... 613def create_connection( 614 address: tuple[Optional[str], int], 615 timeout: Optional[float] = ..., # noqa: F811 616 source_address: Optional[tuple[Union[bytearray, bytes, str], int]] = ..., 617) -> socket: ... 618 619if sys.version_info >= (3, 8): 620 def has_dualstack_ipv6() -> bool: ... 621 def create_server( 622 address: _Address, *, family: int = ..., backlog: Optional[int] = ..., reuse_port: bool = ..., dualstack_ipv6: bool = ... 623 ) -> socket: ... 624 625# the 5th tuple item is an address 626def getaddrinfo( 627 host: Optional[Union[bytearray, bytes, str]], 628 port: Union[str, int, None], 629 family: int = ..., 630 type: int = ..., 631 proto: int = ..., 632 flags: int = ..., 633) -> list[tuple[AddressFamily, SocketKind, int, str, Union[tuple[str, int], tuple[str, int, int, int]]]]: ... 634