Lines Matching +full:getsockopt +full:- +full:timeouts
1 :mod:`socket` --- Low-level networking interface
5 :synopsis: Low-level networking interface.
9 --------------
22 call and library interface for sockets to Python's object-oriented style: the
24 the various socket system calls. Parameter types are somewhat higher-level than
40 ---------------
49 - The address of an :const:`AF_UNIX` socket bound to a file system node
52 Linux's abstract namespace is returned as a :term:`bytes-like object` with
56 bytes-like object can be used for either type of address when
60 Previously, :const:`AF_UNIX` socket paths were assumed to use UTF-8
64 Writable :term:`bytes-like object` is now accepted.
68 - A pair ``(host, port)`` is used for the :const:`AF_INET` address family,
73 - For IPv4 addresses, two special forms are accepted instead of a host
80 - For :const:`AF_INET6` address family, a four-tuple ``(host, port, flowinfo,
92 - :const:`AF_NETLINK` sockets are represented as pairs ``(pid, groups)``.
94 - Linux-only support for TIPC is available using the :const:`AF_TIPC`
95 address family. TIPC is an open, non-IP based networked protocol designed
100 - *addr_type* is one of :const:`TIPC_ADDR_NAMESEQ`, :const:`TIPC_ADDR_NAME`,
102 - *scope* is one of :const:`TIPC_ZONE_SCOPE`, :const:`TIPC_CLUSTER_SCOPE`, and
104 - If *addr_type* is :const:`TIPC_ADDR_NAME`, then *v1* is the server type, *v2* is
113 - A tuple ``(interface, )`` is used for the :const:`AF_CAN` address family,
118 - :const:`CAN_ISOTP` protocol require a tuple ``(interface, rx_addr, tx_addr)``
121 - :const:`CAN_J1939` protocol require a tuple ``(interface, name, pgn, addr)``
122 where additional parameters are 64-bit unsigned integer representing the
123 ECU name, a 32-bit unsigned integer representing the Parameter Group Number
124 (PGN), and an 8-bit integer representing the address.
126 - A string or a tuple ``(id, unit)`` is used for the :const:`SYSPROTO_CONTROL`
128 kernel control using a dynamically-assigned ID. The tuple can be used if ID
134 - :const:`AF_BLUETOOTH` supports the following protocols and address
137 - :const:`BTPROTO_L2CAP` accepts ``(bdaddr, psm)`` where ``bdaddr`` is
140 - :const:`BTPROTO_RFCOMM` accepts ``(bdaddr, channel)`` where ``bdaddr``
143 - :const:`BTPROTO_HCI` accepts ``(device_id,)`` where ``device_id`` is
151 - :const:`BTPROTO_SCO` accepts ``bdaddr`` where ``bdaddr`` is a
156 - :const:`AF_ALG` is a Linux-only socket based interface to Kernel
160 - *type* is the algorithm type as string, e.g. ``aead``, ``hash``,
163 - *name* is the algorithm name and operation mode as string, e.g.
166 - *feat* and *mask* are unsigned 32bit integers.
172 - :const:`AF_VSOCK` allows communication between virtual machines and
180 - :const:`AF_PACKET` is a low-level interface directly to network devices.
184 - *ifname* - String specifying the device name.
185 - *proto* - An in network-byte-order integer specifying the Ethernet
187 - *pkttype* - Optional integer specifying the packet type:
189 - ``PACKET_HOST`` (the default) - Packet addressed to the local host.
190 - ``PACKET_BROADCAST`` - Physical-layer broadcast packet.
191 - ``PACKET_MULTIHOST`` - Packet sent to a physical-layer multicast address.
192 - ``PACKET_OTHERHOST`` - Packet to some other host that has been caught by
194 - ``PACKET_OUTGOING`` - Packet originating from the local host that is
196 - *hatype* - Optional integer specifying the ARP hardware address type.
197 - *addr* - Optional bytes-like object specifying the hardware physical
202 - :const:`AF_QIPCRTR` is a Linux-only socket based interface for communicating
203 with services running on co-processors in Qualcomm platforms. The address
205 are non-negative integers.
211 - :const:`IPPROTO_UDPLITE` is a variant of UDP which allows you to specify
224 .. availability:: Linux >= 2.6.20, FreeBSD >= 10.1-RELEASE
236 and out-of-memory conditions can be raised; starting from Python 3.3, errors
240 Non-blocking mode is supported through :meth:`~socket.setblocking`. A
241 generalization of this based on timeouts is supported through
246 ---------------
265 address-related errors, i.e. for functions that use *h_errno* in the POSIX
278 address-related errors by :func:`getaddrinfo` and :func:`getnameinfo`.
293 occurs on a socket which has had timeouts enabled via a prior call to
367 generally used in arguments to the :meth:`setsockopt` and :meth:`getsockopt`
377 On Windows, ``TCP_FASTOPEN``, ``TCP_KEEPCNT`` appear if run-time Windows
383 On Windows, ``TCP_KEEPIDLE``, ``TCP_KEEPINTVL`` appear if run-time Windows
442 CAN_ISOTP, in the CAN protocol family, is the ISO-TP (ISO 15765-2) protocol.
443 ISO-TP constants, documented in the Linux documentation.
562 The following functions all create :ref:`socket objects <socket-objects>`.
578 auto-detected from the specified file descriptor. Auto-detection can be
586 The newly created socket is :ref:`non-inheritable <fd_inheritance>`.
588 .. audit-event:: socket.__new__ self,family,type,protocol socket.socket
598 The returned socket is now non-inheritable.
615 will still create a non-blocking socket on OSes that support
632 The newly created sockets are :ref:`non-inheritable <fd_inheritance>`.
639 The returned sockets are now non-inheritable.
647 Connect to a TCP service listening on the internet *address* (a 2-tuple
648 ``(host, port)``), and return the socket object. This is a higher-level
649 function than :meth:`socket.connect`: if *host* is a non-numeric hostname,
660 If supplied, *source_address* must be a 2-tuple ``(host, port)`` for the
669 Convenience function which creates a TCP socket bound to *address* (a 2-tuple
683 address represented as an IPv4-mapped IPv6 address.
717 above. The file descriptor should refer to a socket, but this is not checked ---
723 The newly created socket is :ref:`non-inheritable <fd_inheritance>`.
726 The returned socket is now non-inheritable.
748 The :mod:`socket` module also offers various network-related services:
761 Translate the *host*/*port* argument into a sequence of 5-tuples that contain
776 The function returns a list of 5-tuples with the following structure:
785 format depends on the returned *family* (a ``(address, port)`` 2-tuple for
786 :const:`AF_INET`, a ``(address, port, flowinfo, scope_id)`` 4-tuple for
790 .. audit-event:: socket.getaddrinfo host,port,family,type,protocol socket.getaddrinfo
828 .. audit-event:: socket.gethostbyname hostname socket.gethostbyname
842 .. audit-event:: socket.gethostbyname hostname socket.gethostbyname_ex
850 .. audit-event:: socket.gethostname "" socket.gethostname
866 .. audit-event:: socket.gethostbyaddr ip_address socket.gethostbyaddr
871 Translate a socket address *sockaddr* into a 2-tuple ``(host, port)``. Depending
872 on the settings of *flags*, the result can contain a fully-qualified domain name
881 .. audit-event:: socket.getnameinfo sockaddr socket.getnameinfo
898 .. audit-event:: socket.getservbyname servicename,protocolname socket.getservbyname
907 .. audit-event:: socket.getservbyport port,protocolname socket.getservbyport
912 Convert 32-bit positive integers from network to host byte order. On machines
913 where the host byte order is the same as network byte order, this is a no-op;
914 otherwise, it performs a 4-byte swap operation.
919 Convert 16-bit positive integers from network to host byte order. On machines
920 where the host byte order is the same as network byte order, this is a no-op;
921 otherwise, it performs a 2-byte swap operation.
924 Raises :exc:`OverflowError` if *x* does not fit in a 16-bit unsigned
930 Convert 32-bit positive integers from host to network byte order. On machines
931 where the host byte order is the same as network byte order, this is a no-op;
932 otherwise, it performs a 4-byte swap operation.
937 Convert 16-bit positive integers from host to network byte order. On machines
938 where the host byte order is the same as network byte order, this is a no-op;
939 otherwise, it performs a 2-byte swap operation.
942 Raises :exc:`OverflowError` if *x* does not fit in a 16-bit unsigned
948 Convert an IPv4 address from dotted-quad string format (for example,
949 '123.45.67.89') to 32-bit packed binary format, as a bytes object four characters in
952 for the 32-bit packed binary this function returns.
967 Convert a 32-bit packed IPv4 address (a :term:`bytes-like object` four
968 bytes in length) to its standard dotted-quad string representation (for example,
971 is the C type for the 32-bit packed binary data this function takes as an
980 Writable :term:`bytes-like object` is now accepted.
985 Convert an IP address from its family-specific string format to a packed,
1004 Convert a packed IP address (a :term:`bytes-like object` of some number of
1005 bytes) to its standard, family-specific string representation (for
1022 Writable :term:`bytes-like object` is now accepted.
1027 non-Unix platforms? The old (obsolete?) 4.2BSD form of the
1088 .. audit-event:: socket.sethostname name socket.sethostname
1113 * UUID: ``{FB605B73-AAC2-49A6-9A2F-25416AEA0573}``
1116 * description: ``Hyper-V Virtual Ethernet Adapter``
1182 .. _socket-objects:
1185 --------------
1203 The newly created socket is :ref:`non-inheritable <fd_inheritance>`.
1206 The socket is now non-inheritable.
1217 of *address* depends on the address family --- see above.)
1219 .. audit-event:: socket.bind self,address socket.socket.bind
1229 Sockets are automatically closed when they are garbage-collected, but
1248 address family --- see above.)
1253 a timeout. For non-blocking sockets, the method raises an
1257 .. audit-event:: socket.connect self,address socket.socket.connect
1269 exception for errors returned by the C-level :c:func:`connect` call (other
1275 .. audit-event:: socket.connect self,address socket.socket.connect_ex
1290 The newly created socket is :ref:`non-inheritable <fd_inheritance>`.
1293 The socket is now non-inheritable.
1298 Return the socket's file descriptor (a small integer), or -1 on failure. This
1318 of the address returned depends on the address family --- see above.) On some
1326 the address family --- see above.)
1329 .. method:: socket.getsockopt(level, optname[, buflen])
1332 :manpage:`getsockopt(2)`). The needed symbolic constants (:const:`SO_\*` etc.)
1337 contents of the buffer (see the optional built-in module :mod:`struct` for a way
1344 non-blocking.
1364 <https://msdn.microsoft.com/en-us/library/ms741621%28VS.85%29.aspx>`_ for more
1393 interpreted the same way as by the built-in :func:`open` function, except
1406 On Windows, the file-like object created by :meth:`makefile` cannot be
1435 to zero. (The format of *address* depends on the address family --- see above.)
1459 The return value is a 4-tuple: ``(data, ancdata, msg_flags,
1461 non-ancillary data received. The *ancdata* item is a list of zero
1465 protocol-specific type respectively, and *cmsg_data* is a
1505 fds.frombytes(cmsg_data[:len(cmsg_data) - (len(cmsg_data) % fds.itemsize)])
1521 :meth:`recvmsg` would, but scatter the non-ancillary data into a
1525 filled with successive chunks of the non-ancillary data until it
1531 The return value is a 4-tuple: ``(nbytes, ancdata, msg_flags,
1533 non-ancillary data written into the buffers, and *ancdata*,
1540 >>> b1 = bytearray(b'----')
1542 >>> b3 = bytearray(b'--------------')
1548 [bytearray(b'Mary'), bytearray(b'01 had a 9'), bytearray(b'little lamb---')]
1562 depends on the address family --- see above.)
1581 information on this topic, consult the :ref:`socket-howto`.
1614 bytes sent. (The format of *address* depends on the address family --- see
1617 .. audit-event:: socket.sendto self,address socket.socket.sendto
1628 non-ancillary data from a series of buffers and concatenating it
1630 non-ancillary data as an iterable of
1631 :term:`bytes-like objects <bytes-like object>`
1638 protocol-specific type respectively, and *cmsg_data* is a
1639 bytes-like object holding the associated data. Note that
1645 number of bytes of non-ancillary data sent.
1658 .. audit-event:: socket.sendmsg self,address socket.socket.sendmsg
1678 Send a file until EOF is reached by using high-performance
1688 Non-blocking sockets are not supported.
1702 Set blocking or non-blocking mode of the socket: if *flag* is false, the
1703 socket is set to non-blocking, else to blocking mode.
1720 If a non-zero value is given, subsequent socket operations will raise a
1723 non-blocking mode. If ``None`` is given, the socket is put in blocking mode.
1725 For further information, please consult the :ref:`notes on socket timeouts <socket-timeouts>`.
1743 ``None`` or a :term:`bytes-like object` representing a buffer. In the later
1745 proper bits (see the optional built-in module :mod:`struct` for a way to
1752 Writable :term:`bytes-like object` is now accepted.
1783 Socket objects also have these (read-only) attributes that correspond to the
1803 .. _socket-timeouts:
1805 Notes on socket timeouts
1806 ------------------------
1808 A socket object can be in one of three modes: blocking, non-blocking, or
1815 * In *non-blocking mode*, operations fail (with an error that is unfortunately
1816 system-dependent) if they cannot be completed immediately: functions from the
1826 in non-blocking mode. Also, the blocking and timeout modes are shared between
1831 Timeouts and the ``connect`` method
1841 Timeouts and the ``accept`` method
1851 * if the listening socket is in *non-blocking mode*, whether the socket
1852 returned by :meth:`~socket.accept` is in blocking or non-blocking mode
1853 is operating system-dependent. If you want to ensure cross-platform
1857 .. _socket-example:
1860 -------
1878 PORT = 50007 # Arbitrary non-privileged port
1905 should listen to both instead). On most of IPv6-ready systems, IPv6 will take
1915 PORT = 50007 # Arbitrary non-privileged port
2073 - *An Introductory 4.3BSD Interprocess Communication Tutorial*, by Stuart Sechrest
2075 - *An Advanced 4.3BSD Interprocess Communication Tutorial*, by Samuel J. Leffler et
2079 PS1:7 and PS1:8). The platform-specific reference material for the various
2080 socket-related system calls are also a valuable source of information on the
2082 see the WinSock (or Winsock 2) specification. For IPv6-ready APIs, readers may