parthtamu/rag-code-assistant
0
1<!DOCTYPE html>2 3<html lang="en" data-content_root="../">4 <head>5 <meta charset="utf-8" />6 <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />7<meta property="og:title" content="socket — Low-level networking interface" />8<meta property="og:type" content="website" />9<meta property="og:url" content="https://docs.python.org/3/library/socket.html" />10<meta property="og:site_name" content="Python documentation" />11<meta property="og:description" content="Source code: Lib/socket.py This module provides access to the BSD socket interface. It is available on all modern Unix systems, Windows, MacOS, and probably additional platforms. Availability: not ..." />12<meta property="og:image:width" content="1146" />13<meta property="og:image:height" content="600" />14<meta property="og:image" content="https://docs.python.org/3.15/_images/social_previews/summary_library_socket_9427d162.png" />15<meta property="og:image:alt" content="Source code: Lib/socket.py This module provides access to the BSD socket interface. It is available on all modern Unix systems, Windows, MacOS, and probably additional platforms. Availability: not ..." />16<meta name="description" content="Source code: Lib/socket.py This module provides access to the BSD socket interface. It is available on all modern Unix systems, Windows, MacOS, and probably additional platforms. Availability: not ..." />17<meta name="twitter:card" content="summary_large_image" />18<meta name="theme-color" content="#3776ab">19 20 <title>socket — Low-level networking interface — Python 3.15.0a6 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">21 22 <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />23 <link rel="stylesheet" type="text/css" href="../_static/classic.css?v=234b1a7c" />24 <link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?v=89a2f22a" />25 <link rel="stylesheet" type="text/css" href="../_static/profiling-sampling-visualization.css?v=0c2600ae" />26 <link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="../_static/pygments_dark.css?v=5349f25f" />27 28 <script src="../_static/documentation_options.js?v=6b7c9ff5"></script>29 <script src="../_static/doctools.js?v=9bcbadda"></script>30 <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>31 <script src="../_static/profiling-sampling-visualization.js?v=9811ed04"></script>32 33 <script src="../_static/sidebar.js"></script>34 35 <link rel="search" type="application/opensearchdescription+xml"36 title="Search within Python 3.15.0a6 documentation"37 href="../_static/opensearch.xml"/>38 <link rel="author" title="About these documents" href="../about.html" />39 <link rel="index" title="Index" href="../genindex.html" />40 <link rel="search" title="Search" href="../search.html" />41 <link rel="copyright" title="Copyright" href="../copyright.html" />42 <link rel="next" title="ssl — TLS/SSL wrapper for socket objects" href="ssl.html" />43 <link rel="prev" title="Developing with asyncio" href="asyncio-dev.html" />44 45 46 <script defer file-types="bz2,epub,zip" data-domain="docs.python.org" src="https://analytics.python.org/js/script.file-downloads.outbound-links.js"></script>47 48 <link rel="canonical" href="https://docs.python.org/3/library/socket.html">49 50 51 52 53 <style>54 @media only screen {55 table.full-width-table {56 width: 100%;57 }58 }59 </style>60<link rel="stylesheet" href="../_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">61 <link rel="shortcut icon" type="image/png" href="../_static/py.svg">62 <script type="text/javascript" src="../_static/copybutton.js"></script>63 <script type="text/javascript" src="../_static/menu.js"></script>64 <script type="text/javascript" src="../_static/search-focus.js"></script>65 <script type="text/javascript" src="../_static/themetoggle.js"></script> 66 <script type="text/javascript" src="../_static/rtd_switcher.js"></script>67 <meta name="readthedocs-addons-api-version" content="1">68 69 </head>70<body>71<div class="mobile-nav">72 <input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"73 aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu">74 <nav class="nav-content" role="navigation">75 <label for="menuToggler" class="toggler__label">76 <span></span>77 </label>78 <span class="nav-items-wrapper">79 <a href="https://www.python.org/" class="nav-logo">80 <img src="../_static/py.svg" alt="Python logo">81 </a>82 <span class="version_switcher_placeholder"></span>83 <form role="search" class="search" action="../search.html" method="get">84 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">85 <path fill-rule="nonzero" fill="currentColor" d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>86 </svg>87 <input placeholder="Quick search" aria-label="Quick search" type="search" name="q">88 <input type="submit" value="Go">89 </form>90 </span>91 </nav>92 <div class="menu-wrapper">93 <nav class="menu" role="navigation" aria-label="main navigation">94 <div class="language_switcher_placeholder"></div>95 96<label class="theme-selector-label">97 Theme98 <select class="theme-selector" oninput="activateTheme(this.value)">99 <option value="auto" selected>Auto</option>100 <option value="light">Light</option>101 <option value="dark">Dark</option>102 </select>103</label>104 <div>105 <h3><a href="../contents.html">Table of Contents</a></h3>106 <ul>107<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code> — Low-level networking interface</a><ul>108<li><a class="reference internal" href="#socket-families">Socket families</a></li>109<li><a class="reference internal" href="#module-contents">Module contents</a><ul>110<li><a class="reference internal" href="#exceptions">Exceptions</a></li>111<li><a class="reference internal" href="#constants">Constants</a></li>112<li><a class="reference internal" href="#functions">Functions</a><ul>113<li><a class="reference internal" href="#creating-sockets">Creating sockets</a></li>114<li><a class="reference internal" href="#other-functions">Other functions</a></li>115</ul>116</li>117</ul>118</li>119<li><a class="reference internal" href="#socket-objects">Socket Objects</a></li>120<li><a class="reference internal" href="#notes-on-socket-timeouts">Notes on socket timeouts</a><ul>121<li><a class="reference internal" href="#timeouts-and-the-connect-method">Timeouts and the <code class="docutils literal notranslate"><span class="pre">connect</span></code> method</a></li>122<li><a class="reference internal" href="#timeouts-and-the-accept-method">Timeouts and the <code class="docutils literal notranslate"><span class="pre">accept</span></code> method</a></li>123</ul>124</li>125<li><a class="reference internal" href="#example">Example</a></li>126</ul>127</li>128</ul>129 130 </div>131 <div>132 <h4>Previous topic</h4>133 <p class="topless"><a href="asyncio-dev.html"134 title="previous chapter">Developing with asyncio</a></p>135 </div>136 <div>137 <h4>Next topic</h4>138 <p class="topless"><a href="ssl.html"139 title="next chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code> — TLS/SSL wrapper for socket objects</a></p>140 </div>141 <script>142 document.addEventListener('DOMContentLoaded', () => {143 const title = document.querySelector('meta[property="og:title"]').content;144 const elements = document.querySelectorAll('.improvepage');145 const pageurl = window.location.href.split('?')[0];146 elements.forEach(element => {147 const url = new URL(element.href.split('?')[0].replace("-nojs", ""));148 url.searchParams.set('pagetitle', title);149 url.searchParams.set('pageurl', pageurl);150 url.searchParams.set('pagesource', "library/socket.rst");151 element.href = url.toString();152 });153 });154 </script>155 <div role="note" aria-label="source link">156 <h3>This page</h3>157 <ul class="this-page-menu">158 <li><a href="../bugs.html">Report a bug</a></li>159 <li><a class="improvepage" href="../improve-page-nojs.html">Improve this page</a></li>160 <li>161 <a href="https://github.com/python/cpython/blob/main/Doc/library/socket.rst?plain=1"162 rel="nofollow">Show source163 </a>164 </li>165 166 </ul>167 </div>168 </nav>169 </div>170</div>171 172 173 <div class="related" role="navigation" aria-label="Related">174 <h3>Navigation</h3>175 <ul>176 <li class="right" style="margin-right: 10px">177 <a href="../genindex.html" title="General Index"178 accesskey="I">index</a></li>179 <li class="right" >180 <a href="../py-modindex.html" title="Python Module Index"181 >modules</a> |</li>182 <li class="right" >183 <a href="ssl.html" title="ssl — TLS/SSL wrapper for socket objects"184 accesskey="N">next</a> |</li>185 <li class="right" >186 <a href="asyncio-dev.html" title="Developing with asyncio"187 accesskey="P">previous</a> |</li>188 189 <li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>190 <li><a href="https://www.python.org/">Python</a> »</li>191 <li class="switchers">192 <div class="language_switcher_placeholder"></div>193 <div class="version_switcher_placeholder"></div>194 </li>195 <li>196 197 </li>198 <li id="cpython-language-and-version">199 <a href="../index.html">3.15.0a6 Documentation</a> »200 </li>201 202 <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li>203 <li class="nav-item nav-item-2"><a href="ipc.html" accesskey="U">Networking and Interprocess Communication</a> »</li>204 <li class="nav-item nav-item-this"><a href=""><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code> — Low-level networking interface</a></li>205 <li class="right">206 207 208 <div class="inline-search" role="search">209 <form class="inline-search" action="../search.html" method="get">210 <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">211 <input type="submit" value="Go">212 </form>213 </div>214 |215 </li>216 <li class="right">217<label class="theme-selector-label">218 Theme219 <select class="theme-selector" oninput="activateTheme(this.value)">220 <option value="auto" selected>Auto</option>221 <option value="light">Light</option>222 <option value="dark">Dark</option>223 </select>224</label> |</li>225 226 </ul>227 </div> 228 229 <div class="document">230 <div class="documentwrapper">231 <div class="bodywrapper">232 <div class="body" role="main">233 234 <section id="module-socket">235<span id="socket-low-level-networking-interface"></span><h1><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code> — Low-level networking interface<a class="headerlink" href="#module-socket" title="Link to this heading">¶</a></h1>236<p><strong>Source code:</strong> <a class="extlink-source reference external" href="https://github.com/python/cpython/tree/main/Lib/socket.py">Lib/socket.py</a></p>237<hr class="docutils" />238<p>This module provides access to the BSD <em>socket</em> interface. It is available on239all modern Unix systems, Windows, MacOS, and probably additional platforms.</p>240<div class="admonition note">241<p class="admonition-title">Note</p>242<p>Some behavior may be platform dependent, since calls are made to the operating243system socket APIs.</p>244</div>245<div class="availability docutils container">246<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: not WASI.</p>247<p>This module does not work or is not available on WebAssembly. See248<a class="reference internal" href="intro.html#wasm-availability"><span class="std std-ref">WebAssembly platforms</span></a> for more information.</p>249</div>250<p id="index-0">The Python interface is a straightforward transliteration of the Unix system251call and library interface for sockets to Python’s object-oriented style: the252<a class="reference internal" href="#socket.socket" title="socket.socket"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket()</span></code></a> function returns a <em class="dfn">socket object</em> whose methods implement253the various socket system calls. Parameter types are somewhat higher-level than254in the C interface: as with <code class="xref py py-meth docutils literal notranslate"><span class="pre">read()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">write()</span></code> operations on Python255files, buffer allocation on receive operations is automatic, and buffer length256is implicit on send operations.</p>257<div class="admonition seealso">258<p class="admonition-title">See also</p>259<dl class="simple">260<dt>Module <a class="reference internal" href="socketserver.html#module-socketserver" title="socketserver: A framework for network servers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socketserver</span></code></a></dt><dd><p>Classes that simplify writing network servers.</p>261</dd>262<dt>Module <a class="reference internal" href="ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a></dt><dd><p>A TLS/SSL wrapper for socket objects.</p>263</dd>264</dl>265</div>266<section id="socket-families">267<h2>Socket families<a class="headerlink" href="#socket-families" title="Link to this heading">¶</a></h2>268<p>Depending on the system and the build options, various socket families269are supported by this module.</p>270<p>The address format required by a particular socket object is automatically271selected based on the address family specified when the socket object was272created. Socket addresses are represented as follows:</p>273<ul>274<li><p>The address of an <a class="reference internal" href="#socket.AF_UNIX" title="socket.AF_UNIX"><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_UNIX</span></code></a> socket bound to a file system node275is represented as a string, using the file system encoding and the276<code class="docutils literal notranslate"><span class="pre">'surrogateescape'</span></code> error handler (see <span class="target" id="index-1"></span><a class="pep reference external" href="https://peps.python.org/pep-0383/"><strong>PEP 383</strong></a>). An address in277Linux’s abstract namespace is returned as a <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> with278an initial null byte; note that sockets in this namespace can279communicate with normal file system sockets, so programs intended to280run on Linux may need to deal with both types of address. A string or281bytes-like object can be used for either type of address when282passing it as an argument.</p>283<div class="versionchanged">284<p><span class="versionmodified changed">Changed in version 3.3: </span>Previously, <a class="reference internal" href="#socket.AF_UNIX" title="socket.AF_UNIX"><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_UNIX</span></code></a> socket paths were assumed to use UTF-8285encoding.</p>286</div>287<div class="versionchanged">288<p><span class="versionmodified changed">Changed in version 3.5: </span>Writable <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> is now accepted.</p>289</div>290</li>291</ul>292<ul id="host-port">293<li><p>A pair <code class="docutils literal notranslate"><span class="pre">(host,</span> <span class="pre">port)</span></code> is used for the <a class="reference internal" href="#socket.AF_INET" title="socket.AF_INET"><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_INET</span></code></a> address family,294where <em>host</em> is a string representing either a hostname in internet domain295notation like <code class="docutils literal notranslate"><span class="pre">'daring.cwi.nl'</span></code> or an IPv4 address like <code class="docutils literal notranslate"><span class="pre">'100.50.200.5'</span></code>,296and <em>port</em> is an integer.</p>297<ul class="simple">298<li><p>For IPv4 addresses, two special forms are accepted instead of a host299address: <code class="docutils literal notranslate"><span class="pre">''</span></code> represents <code class="xref py py-const docutils literal notranslate"><span class="pre">INADDR_ANY</span></code>, which is used to bind to all300interfaces, and the string <code class="docutils literal notranslate"><span class="pre">'<broadcast>'</span></code> represents301<code class="xref py py-const docutils literal notranslate"><span class="pre">INADDR_BROADCAST</span></code>. This behavior is not compatible with IPv6,302therefore, you may want to avoid these if you intend to support IPv6 with your303Python programs.</p></li>304</ul>305</li>306<li><p>For <a class="reference internal" href="#socket.AF_INET6" title="socket.AF_INET6"><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_INET6</span></code></a> address family, a four-tuple <code class="docutils literal notranslate"><span class="pre">(host,</span> <span class="pre">port,</span> <span class="pre">flowinfo,</span>307<span class="pre">scope_id)</span></code> is used, where <em>flowinfo</em> and <em>scope_id</em> represent the <code class="docutils literal notranslate"><span class="pre">sin6_flowinfo</span></code>308and <code class="docutils literal notranslate"><span class="pre">sin6_scope_id</span></code> members in <code class="xref py py-const docutils literal notranslate"><span class="pre">struct</span> <span class="pre">sockaddr_in6</span></code> in C. For309<code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code> module methods, <em>flowinfo</em> and <em>scope_id</em> can be omitted just for310backward compatibility. Note, however, omission of <em>scope_id</em> can cause problems311in manipulating scoped IPv6 addresses.</p>312<div class="versionchanged">313<p><span class="versionmodified changed">Changed in version 3.7: </span>For multicast addresses (with <em>scope_id</em> meaningful) <em>address</em> may not contain314<code class="docutils literal notranslate"><span class="pre">%scope_id</span></code> (or <code class="docutils literal notranslate"><span class="pre">zone</span> <span class="pre">id</span></code>) part. This information is superfluous and may315be safely omitted (recommended).</p>316</div>317</li>318<li><p><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_NETLINK</span></code> sockets are represented as pairs <code class="docutils literal notranslate"><span class="pre">(pid,</span> <span class="pre">groups)</span></code>.</p></li>319<li><p>Linux-only support for TIPC is available using the <code class="xref py py-const docutils literal notranslate"><span class="pre">AF_TIPC</span></code>320address family. TIPC is an open, non-IP based networked protocol designed321for use in clustered computer environments. Addresses are represented by a322tuple, and the fields depend on the address type. The general tuple form is323<code class="docutils literal notranslate"><span class="pre">(addr_type,</span> <span class="pre">v1,</span> <span class="pre">v2,</span> <span class="pre">v3</span> <span class="pre">[,</span> <span class="pre">scope])</span></code>, where:</p>324<ul>325<li><p><em>addr_type</em> is one of <code class="xref py py-const docutils literal notranslate"><span class="pre">TIPC_ADDR_NAMESEQ</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">TIPC_ADDR_NAME</span></code>,326or <code class="xref py py-const docutils literal notranslate"><span class="pre">TIPC_ADDR_ID</span></code>.</p></li>327<li><p><em>scope</em> is one of <code class="xref py py-const docutils literal notranslate"><span class="pre">TIPC_ZONE_SCOPE</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">TIPC_CLUSTER_SCOPE</span></code>, and328<code class="xref py py-const docutils literal notranslate"><span class="pre">TIPC_NODE_SCOPE</span></code>.</p></li>329<li><p>If <em>addr_type</em> is <code class="xref py py-const docutils literal notranslate"><span class="pre">TIPC_ADDR_NAME</span></code>, then <em>v1</em> is the server type, <em>v2</em> is330the port identifier, and <em>v3</em> should be 0.</p>331<p>If <em>addr_type</em> is <code class="xref py py-const docutils literal notranslate"><span class="pre">TIPC_ADDR_NAMESEQ</span></code>, then <em>v1</em> is the server type, <em>v2</em>332is the lower port number, and <em>v3</em> is the upper port number.</p>333<p>If <em>addr_type</em> is <code class="xref py py-const docutils literal notranslate"><span class="pre">TIPC_ADDR_ID</span></code>, then <em>v1</em> is the node, <em>v2</em> is the334reference, and <em>v3</em> should be set to 0.</p>335</li>336</ul>337</li>338<li><p>A tuple <code class="docutils literal notranslate"><span class="pre">(interface,</span> <span class="pre">)</span></code> is used for the <a class="reference internal" href="#socket.AF_CAN" title="socket.AF_CAN"><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_CAN</span></code></a> address family,339where <em>interface</em> is a string representing a network interface name like340<code class="docutils literal notranslate"><span class="pre">'can0'</span></code>. The network interface name <code class="docutils literal notranslate"><span class="pre">''</span></code> can be used to receive packets341from all network interfaces of this family.</p>342<ul class="simple">343<li><p><a class="reference internal" href="#socket.CAN_ISOTP" title="socket.CAN_ISOTP"><code class="xref py py-const docutils literal notranslate"><span class="pre">CAN_ISOTP</span></code></a> protocol requires a tuple <code class="docutils literal notranslate"><span class="pre">(interface,</span> <span class="pre">rx_addr,</span> <span class="pre">tx_addr)</span></code>344where both additional parameters are unsigned long integer that represent a345CAN identifier (standard or extended).</p></li>346<li><p><a class="reference internal" href="#socket.CAN_J1939" title="socket.CAN_J1939"><code class="xref py py-const docutils literal notranslate"><span class="pre">CAN_J1939</span></code></a> protocol requires a tuple <code class="docutils literal notranslate"><span class="pre">(interface,</span> <span class="pre">name,</span> <span class="pre">pgn,</span> <span class="pre">addr)</span></code>347where additional parameters are 64-bit unsigned integer representing the348ECU name, a 32-bit unsigned integer representing the Parameter Group Number349(PGN), and an 8-bit integer representing the address.</p></li>350</ul>351</li>352<li><p>A string or a tuple <code class="docutils literal notranslate"><span class="pre">(id,</span> <span class="pre">unit)</span></code> is used for the <code class="xref py py-const docutils literal notranslate"><span class="pre">SYSPROTO_CONTROL</span></code>353protocol of the <code class="xref py py-const docutils literal notranslate"><span class="pre">PF_SYSTEM</span></code> family. The string is the name of a354kernel control using a dynamically assigned ID. The tuple can be used if ID355and unit number of the kernel control are known or if a registered ID is356used.</p>357<div class="versionadded">358<p><span class="versionmodified added">Added in version 3.3.</span></p>359</div>360</li>361<li><p><a class="reference internal" href="#socket.AF_BLUETOOTH" title="socket.AF_BLUETOOTH"><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_BLUETOOTH</span></code></a> supports the following protocols and address362formats:</p>363<ul>364<li><p><a class="reference internal" href="#socket.BTPROTO_L2CAP" title="socket.BTPROTO_L2CAP"><code class="xref py py-const docutils literal notranslate"><span class="pre">BTPROTO_L2CAP</span></code></a> accepts a tuple365<code class="docutils literal notranslate"><span class="pre">(bdaddr,</span> <span class="pre">psm[,</span> <span class="pre">cid[,</span> <span class="pre">bdaddr_type]])</span></code> where:</p>366<ul class="simple">367<li><p><code class="docutils literal notranslate"><span class="pre">bdaddr</span></code> is a string specifying the Bluetooth address.</p></li>368<li><p><code class="docutils literal notranslate"><span class="pre">psm</span></code> is an integer specifying the Protocol/Service Multiplexer.</p></li>369<li><p><code class="docutils literal notranslate"><span class="pre">cid</span></code> is an optional integer specifying the Channel Identifier.370If not given, defaults to zero.</p></li>371<li><p><code class="docutils literal notranslate"><span class="pre">bdaddr_type</span></code> is an optional integer specifying the address type;372one of <a class="reference internal" href="#socket.BDADDR_BREDR" title="socket.BDADDR_BREDR"><code class="xref py py-const docutils literal notranslate"><span class="pre">BDADDR_BREDR</span></code></a> (default), <a class="reference internal" href="#socket.BDADDR_LE_PUBLIC" title="socket.BDADDR_LE_PUBLIC"><code class="xref py py-const docutils literal notranslate"><span class="pre">BDADDR_LE_PUBLIC</span></code></a>,373<a class="reference internal" href="#socket.BDADDR_LE_RANDOM" title="socket.BDADDR_LE_RANDOM"><code class="xref py py-const docutils literal notranslate"><span class="pre">BDADDR_LE_RANDOM</span></code></a>.</p></li>374</ul>375<div class="versionchanged">376<p><span class="versionmodified changed">Changed in version 3.14: </span>Added <code class="docutils literal notranslate"><span class="pre">cid</span></code> and <code class="docutils literal notranslate"><span class="pre">bdaddr_type</span></code> fields.</p>377</div>378</li>379<li><p><a class="reference internal" href="#socket.BTPROTO_RFCOMM" title="socket.BTPROTO_RFCOMM"><code class="xref py py-const docutils literal notranslate"><span class="pre">BTPROTO_RFCOMM</span></code></a> accepts <code class="docutils literal notranslate"><span class="pre">(bdaddr,</span> <span class="pre">channel)</span></code> where <code class="docutils literal notranslate"><span class="pre">bdaddr</span></code>380is the Bluetooth address as a string and <code class="docutils literal notranslate"><span class="pre">channel</span></code> is an integer.</p></li>381<li><p><a class="reference internal" href="#socket.BTPROTO_HCI" title="socket.BTPROTO_HCI"><code class="xref py py-const docutils literal notranslate"><span class="pre">BTPROTO_HCI</span></code></a> accepts a format that depends on your OS.</p>382<ul class="simple">383<li><p>On Linux it accepts an integer <code class="docutils literal notranslate"><span class="pre">device_id</span></code> or a tuple384<code class="docutils literal notranslate"><span class="pre">(device_id,</span> <span class="pre">[channel])</span></code> where <code class="docutils literal notranslate"><span class="pre">device_id</span></code>385specifies the number of the Bluetooth device,386and <code class="docutils literal notranslate"><span class="pre">channel</span></code> is an optional integer specifying the HCI channel387(<a class="reference internal" href="#socket.HCI_CHANNEL_RAW" title="socket.HCI_CHANNEL_RAW"><code class="xref py py-const docutils literal notranslate"><span class="pre">HCI_CHANNEL_RAW</span></code></a> by default).</p></li>388<li><p>On FreeBSD, NetBSD and DragonFly BSD it accepts <code class="docutils literal notranslate"><span class="pre">bdaddr</span></code>389where <code class="docutils literal notranslate"><span class="pre">bdaddr</span></code> is the Bluetooth address as a string.</p></li>390</ul>391<div class="versionchanged">392<p><span class="versionmodified changed">Changed in version 3.2: </span>NetBSD and DragonFlyBSD support added.</p>393</div>394<div class="versionchanged">395<p><span class="versionmodified changed">Changed in version 3.13.3: </span>FreeBSD support added.</p>396</div>397<div class="versionchanged">398<p><span class="versionmodified changed">Changed in version 3.14: </span>Added <code class="docutils literal notranslate"><span class="pre">channel</span></code> field.399<code class="docutils literal notranslate"><span class="pre">device_id</span></code> not packed in a tuple is now accepted.</p>400</div>401</li>402<li><p><a class="reference internal" href="#socket.BTPROTO_SCO" title="socket.BTPROTO_SCO"><code class="xref py py-const docutils literal notranslate"><span class="pre">BTPROTO_SCO</span></code></a> accepts <code class="docutils literal notranslate"><span class="pre">bdaddr</span></code> where <code class="docutils literal notranslate"><span class="pre">bdaddr</span></code> is403the Bluetooth address as a string or a <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> object.404(ex. <code class="docutils literal notranslate"><span class="pre">'12:23:34:45:56:67'</span></code> or <code class="docutils literal notranslate"><span class="pre">b'12:23:34:45:56:67'</span></code>)</p>405<div class="versionchanged">406<p><span class="versionmodified changed">Changed in version 3.14: </span>FreeBSD support added.</p>407</div>408</li>409</ul>410</li>411<li><p><a class="reference internal" href="#socket.AF_ALG" title="socket.AF_ALG"><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_ALG</span></code></a> is a Linux-only socket based interface to Kernel412cryptography. An algorithm socket is configured with a tuple of two to four413elements <code class="docutils literal notranslate"><span class="pre">(type,</span> <span class="pre">name</span> <span class="pre">[,</span> <span class="pre">feat</span> <span class="pre">[,</span> <span class="pre">mask]])</span></code>, where:</p>414<ul class="simple">415<li><p><em>type</em> is the algorithm type as string, e.g. <code class="docutils literal notranslate"><span class="pre">aead</span></code>, <code class="docutils literal notranslate"><span class="pre">hash</span></code>,416<code class="docutils literal notranslate"><span class="pre">skcipher</span></code> or <code class="docutils literal notranslate"><span class="pre">rng</span></code>.</p></li>417<li><p><em>name</em> is the algorithm name and operation mode as string, e.g.418<code class="docutils literal notranslate"><span class="pre">sha256</span></code>, <code class="docutils literal notranslate"><span class="pre">hmac(sha256)</span></code>, <code class="docutils literal notranslate"><span class="pre">cbc(aes)</span></code> or <code class="docutils literal notranslate"><span class="pre">drbg_nopr_ctr_aes256</span></code>.</p></li>419<li><p><em>feat</em> and <em>mask</em> are unsigned 32bit integers.</p></li>420</ul>421<div class="availability docutils container">422<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 2.6.38.</p>423<p>Some algorithm types require more recent Kernels.</p>424</div>425<div class="versionadded">426<p><span class="versionmodified added">Added in version 3.6.</span></p>427</div>428</li>429<li><p><a class="reference internal" href="#socket.AF_VSOCK" title="socket.AF_VSOCK"><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_VSOCK</span></code></a> allows communication between virtual machines and430their hosts. The sockets are represented as a <code class="docutils literal notranslate"><span class="pre">(CID,</span> <span class="pre">port)</span></code> tuple431where the context ID or CID and port are integers.</p>432<div class="availability docutils container">433<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 3.9</p>434<p>See <em class="manpage"><a class="manpage reference external" href="https://manpages.debian.org/vsock(7)">vsock(7)</a></em></p>435</div>436<div class="versionadded">437<p><span class="versionmodified added">Added in version 3.7.</span></p>438</div>439</li>440<li><p><a class="reference internal" href="#socket.AF_PACKET" title="socket.AF_PACKET"><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_PACKET</span></code></a> is a low-level interface directly to network devices.441The addresses are represented by the tuple442<code class="docutils literal notranslate"><span class="pre">(ifname,</span> <span class="pre">proto[,</span> <span class="pre">pkttype[,</span> <span class="pre">hatype[,</span> <span class="pre">addr]]])</span></code> where:</p>443<ul class="simple">444<li><p><em>ifname</em> - String specifying the device name.</p></li>445<li><p><em>proto</em> - The Ethernet protocol number.446May be <a class="reference internal" href="#socket.ETH_P_ALL" title="socket.ETH_P_ALL"><code class="xref py py-data docutils literal notranslate"><span class="pre">ETH_P_ALL</span></code></a> to capture all protocols,447one of the <a class="reference internal" href="#socket-ethernet-types"><span class="std std-ref">ETHERTYPE_* constants</span></a>448or any other Ethernet protocol number.</p></li>449<li><p><em>pkttype</em> - Optional integer specifying the packet type:</p>450<ul>451<li><p><code class="docutils literal notranslate"><span class="pre">PACKET_HOST</span></code> (the default) - Packet addressed to the local host.</p></li>452<li><p><code class="docutils literal notranslate"><span class="pre">PACKET_BROADCAST</span></code> - Physical-layer broadcast packet.</p></li>453<li><p><code class="docutils literal notranslate"><span class="pre">PACKET_MULTICAST</span></code> - Packet sent to a physical-layer multicast address.</p></li>454<li><p><code class="docutils literal notranslate"><span class="pre">PACKET_OTHERHOST</span></code> - Packet to some other host that has been caught by455a device driver in promiscuous mode.</p></li>456<li><p><code class="docutils literal notranslate"><span class="pre">PACKET_OUTGOING</span></code> - Packet originating from the local host that is457looped back to a packet socket.</p></li>458</ul>459</li>460<li><p><em>hatype</em> - Optional integer specifying the ARP hardware address type.</p></li>461<li><p><em>addr</em> - Optional bytes-like object specifying the hardware physical462address, whose interpretation depends on the device.</p></li>463</ul>464<div class="availability docutils container">465<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 2.2.</p>466</div>467</li>468<li><p><a class="reference internal" href="#socket.AF_QIPCRTR" title="socket.AF_QIPCRTR"><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_QIPCRTR</span></code></a> is a Linux-only socket based interface for communicating469with services running on co-processors in Qualcomm platforms. The address470family is represented as a <code class="docutils literal notranslate"><span class="pre">(node,</span> <span class="pre">port)</span></code> tuple where the <em>node</em> and <em>port</em>471are non-negative integers.</p>472<div class="availability docutils container">473<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 4.7.</p>474</div>475<div class="versionadded">476<p><span class="versionmodified added">Added in version 3.8.</span></p>477</div>478</li>479<li><p><code class="xref py py-const docutils literal notranslate"><span class="pre">IPPROTO_UDPLITE</span></code> is a variant of UDP which allows you to specify480what portion of a packet is covered with the checksum. It adds two socket481options that you can change.482<code class="docutils literal notranslate"><span class="pre">self.setsockopt(IPPROTO_UDPLITE,</span> <span class="pre">UDPLITE_SEND_CSCOV,</span> <span class="pre">length)</span></code> will483change what portion of outgoing packets are covered by the checksum and484<code class="docutils literal notranslate"><span class="pre">self.setsockopt(IPPROTO_UDPLITE,</span> <span class="pre">UDPLITE_RECV_CSCOV,</span> <span class="pre">length)</span></code> will485filter out packets which cover too little of their data. In both cases486<code class="docutils literal notranslate"><span class="pre">length</span></code> should be in <code class="docutils literal notranslate"><span class="pre">range(8,</span> <span class="pre">2**16,</span> <span class="pre">8)</span></code>.</p>487<p>Such a socket should be constructed with488<code class="docutils literal notranslate"><span class="pre">socket(AF_INET,</span> <span class="pre">SOCK_DGRAM,</span> <span class="pre">IPPROTO_UDPLITE)</span></code> for IPv4 or489<code class="docutils literal notranslate"><span class="pre">socket(AF_INET6,</span> <span class="pre">SOCK_DGRAM,</span> <span class="pre">IPPROTO_UDPLITE)</span></code> for IPv6.</p>490<div class="availability docutils container">491<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 2.6.20, FreeBSD >= 10.1</p>492</div>493<div class="versionadded">494<p><span class="versionmodified added">Added in version 3.9.</span></p>495</div>496</li>497<li><p><a class="reference internal" href="#socket.AF_HYPERV" title="socket.AF_HYPERV"><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_HYPERV</span></code></a> is a Windows-only socket based interface for communicating498with Hyper-V hosts and guests. The address family is represented as a499<code class="docutils literal notranslate"><span class="pre">(vm_id,</span> <span class="pre">service_id)</span></code> tuple where the <code class="docutils literal notranslate"><span class="pre">vm_id</span></code> and <code class="docutils literal notranslate"><span class="pre">service_id</span></code> are500UUID strings.</p>501<p>The <code class="docutils literal notranslate"><span class="pre">vm_id</span></code> is the virtual machine identifier or a set of known VMID values502if the target is not a specific virtual machine. Known VMID constants503defined on <code class="docutils literal notranslate"><span class="pre">socket</span></code> are:</p>504<ul class="simple">505<li><p><code class="docutils literal notranslate"><span class="pre">HV_GUID_ZERO</span></code></p></li>506<li><p><code class="docutils literal notranslate"><span class="pre">HV_GUID_BROADCAST</span></code></p></li>507<li><p><code class="docutils literal notranslate"><span class="pre">HV_GUID_WILDCARD</span></code> - Used to bind on itself and accept connections from508all partitions.</p></li>509<li><p><code class="docutils literal notranslate"><span class="pre">HV_GUID_CHILDREN</span></code> - Used to bind on itself and accept connection from510child partitions.</p></li>511<li><p><code class="docutils literal notranslate"><span class="pre">HV_GUID_LOOPBACK</span></code> - Used as a target to itself.</p></li>512<li><p><code class="docutils literal notranslate"><span class="pre">HV_GUID_PARENT</span></code> - When used as a bind accepts connection from the parent513partition. When used as an address target it will connect to the parent partition.</p></li>514</ul>515<p>The <code class="docutils literal notranslate"><span class="pre">service_id</span></code> is the service identifier of the registered service.</p>516<div class="versionadded">517<p><span class="versionmodified added">Added in version 3.12.</span></p>518</div>519</li>520</ul>521<p>If you use a hostname in the <em>host</em> portion of IPv4/v6 socket address, the522program may show a nondeterministic behavior, as Python uses the first address523returned from the DNS resolution. The socket address will be resolved524differently into an actual IPv4/v6 address, depending on the results from DNS525resolution and/or the host configuration. For deterministic behavior use a526numeric address in <em>host</em> portion.</p>527<p>All errors raise exceptions. The normal exceptions for invalid argument types528and out-of-memory conditions can be raised. Errors529related to socket or address semantics raise <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> or one of its530subclasses.</p>531<p>Non-blocking mode is supported through <a class="reference internal" href="#socket.socket.setblocking" title="socket.socket.setblocking"><code class="xref py py-meth docutils literal notranslate"><span class="pre">setblocking()</span></code></a>. A532generalization of this based on timeouts is supported through533<a class="reference internal" href="#socket.socket.settimeout" title="socket.socket.settimeout"><code class="xref py py-meth docutils literal notranslate"><span class="pre">settimeout()</span></code></a>.</p>534</section>535<section id="module-contents">536<h2>Module contents<a class="headerlink" href="#module-contents" title="Link to this heading">¶</a></h2>537<p>The module <code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code> exports the following elements.</p>538<section id="exceptions">539<h3>Exceptions<a class="headerlink" href="#exceptions" title="Link to this heading">¶</a></h3>540<dl class="py exception">541<dt class="sig sig-object py" id="socket.error">542<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">error</span></span><a class="headerlink" href="#socket.error" title="Link to this definition">¶</a></dt>543<dd><p>A deprecated alias of <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a>.</p>544<div class="versionchanged">545<p><span class="versionmodified changed">Changed in version 3.3: </span>Following <span class="target" id="index-2"></span><a class="pep reference external" href="https://peps.python.org/pep-3151/"><strong>PEP 3151</strong></a>, this class was made an alias of <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a>.</p>546</div>547</dd></dl>548 549<dl class="py exception">550<dt class="sig sig-object py" id="socket.herror">551<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">herror</span></span><a class="headerlink" href="#socket.herror" title="Link to this definition">¶</a></dt>552<dd><p>A subclass of <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a>, this exception is raised for553address-related errors, i.e. for functions that use <em>h_errno</em> in the POSIX554C API, including <a class="reference internal" href="#socket.gethostbyname_ex" title="socket.gethostbyname_ex"><code class="xref py py-func docutils literal notranslate"><span class="pre">gethostbyname_ex()</span></code></a> and <a class="reference internal" href="#socket.gethostbyaddr" title="socket.gethostbyaddr"><code class="xref py py-func docutils literal notranslate"><span class="pre">gethostbyaddr()</span></code></a>.555The accompanying value is a pair <code class="docutils literal notranslate"><span class="pre">(h_errno,</span> <span class="pre">string)</span></code> representing an556error returned by a library call. <em>h_errno</em> is a numeric value, while557<em>string</em> represents the description of <em>h_errno</em>, as returned by the558<code class="xref c c-func docutils literal notranslate"><span class="pre">hstrerror()</span></code> C function.</p>559<div class="versionchanged">560<p><span class="versionmodified changed">Changed in version 3.3: </span>This class was made a subclass of <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a>.</p>561</div>562</dd></dl>563 564<dl class="py exception">565<dt class="sig sig-object py" id="socket.gaierror">566<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">gaierror</span></span><a class="headerlink" href="#socket.gaierror" title="Link to this definition">¶</a></dt>567<dd><p>A subclass of <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a>, this exception is raised for568address-related errors by <a class="reference internal" href="#socket.getaddrinfo" title="socket.getaddrinfo"><code class="xref py py-func docutils literal notranslate"><span class="pre">getaddrinfo()</span></code></a> and <a class="reference internal" href="#socket.getnameinfo" title="socket.getnameinfo"><code class="xref py py-func docutils literal notranslate"><span class="pre">getnameinfo()</span></code></a>.569The accompanying value is a pair <code class="docutils literal notranslate"><span class="pre">(error,</span> <span class="pre">string)</span></code> representing an error570returned by a library call. <em>string</em> represents the description of571<em>error</em>, as returned by the <code class="xref c c-func docutils literal notranslate"><span class="pre">gai_strerror()</span></code> C function. The572numeric <em>error</em> value will match one of the <code class="xref py py-const docutils literal notranslate"><span class="pre">EAI_*</span></code> constants573defined in this module.</p>574<div class="versionchanged">575<p><span class="versionmodified changed">Changed in version 3.3: </span>This class was made a subclass of <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a>.</p>576</div>577</dd></dl>578 579<dl class="py exception">580<dt class="sig sig-object py" id="socket.timeout">581<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">timeout</span></span><a class="headerlink" href="#socket.timeout" title="Link to this definition">¶</a></dt>582<dd><p>A deprecated alias of <a class="reference internal" href="exceptions.html#TimeoutError" title="TimeoutError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TimeoutError</span></code></a>.</p>583<p>A subclass of <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a>, this exception is raised when a timeout584occurs on a socket which has had timeouts enabled via a prior call to585<a class="reference internal" href="#socket.socket.settimeout" title="socket.socket.settimeout"><code class="xref py py-meth docutils literal notranslate"><span class="pre">settimeout()</span></code></a> (or implicitly through586<a class="reference internal" href="#socket.setdefaulttimeout" title="socket.setdefaulttimeout"><code class="xref py py-func docutils literal notranslate"><span class="pre">setdefaulttimeout()</span></code></a>). The accompanying value is a string587whose value is currently always “timed out”.</p>588<div class="versionchanged">589<p><span class="versionmodified changed">Changed in version 3.3: </span>This class was made a subclass of <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a>.</p>590</div>591<div class="versionchanged">592<p><span class="versionmodified changed">Changed in version 3.10: </span>This class was made an alias of <a class="reference internal" href="exceptions.html#TimeoutError" title="TimeoutError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TimeoutError</span></code></a>.</p>593</div>594</dd></dl>595 596</section>597<section id="constants">598<h3>Constants<a class="headerlink" href="#constants" title="Link to this heading">¶</a></h3>599<p>The AF_* and SOCK_* constants are now <code class="xref py py-class docutils literal notranslate"><span class="pre">AddressFamily</span></code> and600<code class="xref py py-class docutils literal notranslate"><span class="pre">SocketKind</span></code> <a class="reference internal" href="enum.html#enum.IntEnum" title="enum.IntEnum"><code class="xref py py-class docutils literal notranslate"><span class="pre">IntEnum</span></code></a> collections.</p>601<div class="versionadded">602<p><span class="versionmodified added">Added in version 3.4.</span></p>603</div>604<dl class="py data">605<dt class="sig sig-object py" id="socket.AF_UNIX">606<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">AF_UNIX</span></span><a class="headerlink" href="#socket.AF_UNIX" title="Link to this definition">¶</a></dt>607<dt class="sig sig-object py" id="socket.AF_INET">608<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">AF_INET</span></span><a class="headerlink" href="#socket.AF_INET" title="Link to this definition">¶</a></dt>609<dt class="sig sig-object py" id="socket.AF_INET6">610<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">AF_INET6</span></span><a class="headerlink" href="#socket.AF_INET6" title="Link to this definition">¶</a></dt>611<dd><p>These constants represent the address (and protocol) families, used for the612first argument to <a class="reference internal" href="#socket.socket" title="socket.socket"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket()</span></code></a>. If the <a class="reference internal" href="#socket.AF_UNIX" title="socket.AF_UNIX"><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_UNIX</span></code></a> constant is not613defined then this protocol is unsupported. More constants may be available614depending on the system.</p>615</dd></dl>616 617<dl class="py data">618<dt class="sig sig-object py" id="socket.AF_UNSPEC">619<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">AF_UNSPEC</span></span><a class="headerlink" href="#socket.AF_UNSPEC" title="Link to this definition">¶</a></dt>620<dd><p><a class="reference internal" href="#socket.AF_UNSPEC" title="socket.AF_UNSPEC"><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_UNSPEC</span></code></a> means that621<a class="reference internal" href="#socket.getaddrinfo" title="socket.getaddrinfo"><code class="xref py py-func docutils literal notranslate"><span class="pre">getaddrinfo()</span></code></a> should return socket addresses for any622address family (either IPv4, IPv6, or any other) that can be used.</p>623</dd></dl>624 625<dl class="py data">626<dt class="sig sig-object py" id="socket.SOCK_STREAM">627<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOCK_STREAM</span></span><a class="headerlink" href="#socket.SOCK_STREAM" title="Link to this definition">¶</a></dt>628<dt class="sig sig-object py" id="socket.SOCK_DGRAM">629<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOCK_DGRAM</span></span><a class="headerlink" href="#socket.SOCK_DGRAM" title="Link to this definition">¶</a></dt>630<dt class="sig sig-object py" id="socket.SOCK_RAW">631<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOCK_RAW</span></span><a class="headerlink" href="#socket.SOCK_RAW" title="Link to this definition">¶</a></dt>632<dt class="sig sig-object py" id="socket.SOCK_RDM">633<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOCK_RDM</span></span><a class="headerlink" href="#socket.SOCK_RDM" title="Link to this definition">¶</a></dt>634<dt class="sig sig-object py" id="socket.SOCK_SEQPACKET">635<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOCK_SEQPACKET</span></span><a class="headerlink" href="#socket.SOCK_SEQPACKET" title="Link to this definition">¶</a></dt>636<dd><p>These constants represent the socket types, used for the second argument to637<a class="reference internal" href="#socket.socket" title="socket.socket"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket()</span></code></a>. More constants may be available depending on the system.638(Only <a class="reference internal" href="#socket.SOCK_STREAM" title="socket.SOCK_STREAM"><code class="xref py py-const docutils literal notranslate"><span class="pre">SOCK_STREAM</span></code></a> and <a class="reference internal" href="#socket.SOCK_DGRAM" title="socket.SOCK_DGRAM"><code class="xref py py-const docutils literal notranslate"><span class="pre">SOCK_DGRAM</span></code></a> appear to be generally639useful.)</p>640</dd></dl>641 642<dl class="py data">643<dt class="sig sig-object py" id="socket.SOCK_CLOEXEC">644<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOCK_CLOEXEC</span></span><a class="headerlink" href="#socket.SOCK_CLOEXEC" title="Link to this definition">¶</a></dt>645<dt class="sig sig-object py" id="socket.SOCK_NONBLOCK">646<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOCK_NONBLOCK</span></span><a class="headerlink" href="#socket.SOCK_NONBLOCK" title="Link to this definition">¶</a></dt>647<dd><p>These two constants, if defined, can be combined with the socket types and648allow you to set some flags atomically (thus avoiding possible race649conditions and the need for separate calls).</p>650<div class="admonition seealso">651<p class="admonition-title">See also</p>652<p><a class="reference external" href="https://udrepper.livejournal.com/20407.html">Secure File Descriptor Handling</a>653for a more thorough explanation.</p>654</div>655<div class="availability docutils container">656<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 2.6.27.</p>657</div>658<div class="versionadded">659<p><span class="versionmodified added">Added in version 3.2.</span></p>660</div>661</dd></dl>662 663<dl class="py data" id="socket-unix-constants">664<dt class="sig sig-object py">665<span class="sig-name descname"><span class="pre">SO_*</span></span></dt>666<dt class="sig sig-object py" id="socket.SOMAXCONN">667<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOMAXCONN</span></span><a class="headerlink" href="#socket.SOMAXCONN" title="Link to this definition">¶</a></dt>668<dt class="sig sig-object py">669<span class="sig-name descname"><span class="pre">MSG_*</span></span></dt>670<dt class="sig sig-object py">671<span class="sig-name descname"><span class="pre">SOL_*</span></span></dt>672<dt class="sig sig-object py">673<span class="sig-name descname"><span class="pre">SCM_*</span></span></dt>674<dt class="sig sig-object py">675<span class="sig-name descname"><span class="pre">IPPROTO_*</span></span></dt>676<dt class="sig sig-object py">677<span class="sig-name descname"><span class="pre">IPPORT_*</span></span></dt>678<dt class="sig sig-object py">679<span class="sig-name descname"><span class="pre">INADDR_*</span></span></dt>680<dt class="sig sig-object py">681<span class="sig-name descname"><span class="pre">IP_*</span></span></dt>682<dt class="sig sig-object py">683<span class="sig-name descname"><span class="pre">IPV6_*</span></span></dt>684<dt class="sig sig-object py">685<span class="sig-name descname"><span class="pre">EAI_*</span></span></dt>686<dt class="sig sig-object py">687<span class="sig-name descname"><span class="pre">AI_*</span></span></dt>688<dt class="sig sig-object py">689<span class="sig-name descname"><span class="pre">NI_*</span></span></dt>690<dt class="sig sig-object py">691<span class="sig-name descname"><span class="pre">TCP_*</span></span></dt>692<dd><p>Many constants of these forms, documented in the Unix documentation on sockets693and/or the IP protocol, are also defined in the socket module. They are694generally used in arguments to the <a class="reference internal" href="#socket.socket.setsockopt" title="socket.socket.setsockopt"><code class="xref py py-meth docutils literal notranslate"><span class="pre">setsockopt()</span></code></a> and <a class="reference internal" href="#socket.socket.getsockopt" title="socket.socket.getsockopt"><code class="xref py py-meth docutils literal notranslate"><span class="pre">getsockopt()</span></code></a>695methods of socket objects. In most cases, only those symbols that are defined696in the Unix header files are defined; for a few symbols, default values are697provided.</p>698<div class="versionchanged">699<p><span class="versionmodified changed">Changed in version 3.6: </span><code class="docutils literal notranslate"><span class="pre">SO_DOMAIN</span></code>, <code class="docutils literal notranslate"><span class="pre">SO_PROTOCOL</span></code>, <code class="docutils literal notranslate"><span class="pre">SO_PEERSEC</span></code>, <code class="docutils literal notranslate"><span class="pre">SO_PASSSEC</span></code>,700<code class="docutils literal notranslate"><span class="pre">TCP_USER_TIMEOUT</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_CONGESTION</span></code> were added.</p>701</div>702<div class="versionchanged">703<p><span class="versionmodified changed">Changed in version 3.6.5: </span>Added support for <code class="docutils literal notranslate"><span class="pre">TCP_FASTOPEN</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_KEEPCNT</span></code> on Windows platforms704when available.</p>705</div>706<div class="versionchanged">707<p><span class="versionmodified changed">Changed in version 3.7: </span><code class="docutils literal notranslate"><span class="pre">TCP_NOTSENT_LOWAT</span></code> was added.</p>708<p>Added support for <code class="docutils literal notranslate"><span class="pre">TCP_KEEPIDLE</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_KEEPINTVL</span></code> on Windows platforms709when available.</p>710</div>711<div class="versionchanged">712<p><span class="versionmodified changed">Changed in version 3.10: </span><code class="docutils literal notranslate"><span class="pre">IP_RECVTOS</span></code> was added.713 Added <code class="docutils literal notranslate"><span class="pre">TCP_KEEPALIVE</span></code>. On MacOS this constant can be used in the same714 way that <code class="docutils literal notranslate"><span class="pre">TCP_KEEPIDLE</span></code> is used on Linux.</p>715</div>716<div class="versionchanged">717<p><span class="versionmodified changed">Changed in version 3.11: </span>Added <code class="docutils literal notranslate"><span class="pre">TCP_CONNECTION_INFO</span></code>. On MacOS this constant can be used in the718same way that <code class="docutils literal notranslate"><span class="pre">TCP_INFO</span></code> is used on Linux and BSD.</p>719</div>720<div class="versionchanged">721<p><span class="versionmodified changed">Changed in version 3.12: </span>Added <code class="docutils literal notranslate"><span class="pre">SO_RTABLE</span></code> and <code class="docutils literal notranslate"><span class="pre">SO_USER_COOKIE</span></code>. On OpenBSD722and FreeBSD respectively those constants can be used in the same way that723<code class="docutils literal notranslate"><span class="pre">SO_MARK</span></code> is used on Linux. Also added missing TCP socket options from724Linux: <code class="docutils literal notranslate"><span class="pre">TCP_MD5SIG</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_THIN_LINEAR_TIMEOUTS</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_THIN_DUPACK</span></code>,725<code class="docutils literal notranslate"><span class="pre">TCP_REPAIR</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_REPAIR_QUEUE</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_QUEUE_SEQ</span></code>,726<code class="docutils literal notranslate"><span class="pre">TCP_REPAIR_OPTIONS</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_TIMESTAMP</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_CC_INFO</span></code>,727<code class="docutils literal notranslate"><span class="pre">TCP_SAVE_SYN</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_SAVED_SYN</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_REPAIR_WINDOW</span></code>,728<code class="docutils literal notranslate"><span class="pre">TCP_FASTOPEN_CONNECT</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_ULP</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_MD5SIG_EXT</span></code>,729<code class="docutils literal notranslate"><span class="pre">TCP_FASTOPEN_KEY</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_FASTOPEN_NO_COOKIE</span></code>,730<code class="docutils literal notranslate"><span class="pre">TCP_ZEROCOPY_RECEIVE</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_INQ</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_TX_DELAY</span></code>.731Added <code class="docutils literal notranslate"><span class="pre">IP_PKTINFO</span></code>, <code class="docutils literal notranslate"><span class="pre">IP_UNBLOCK_SOURCE</span></code>, <code class="docutils literal notranslate"><span class="pre">IP_BLOCK_SOURCE</span></code>,732<code class="docutils literal notranslate"><span class="pre">IP_ADD_SOURCE_MEMBERSHIP</span></code>, <code class="docutils literal notranslate"><span class="pre">IP_DROP_SOURCE_MEMBERSHIP</span></code>.</p>733</div>734<div class="versionchanged">735<p><span class="versionmodified changed">Changed in version 3.13: </span>Added <code class="docutils literal notranslate"><span class="pre">SO_BINDTOIFINDEX</span></code>. On Linux this constant can be used in the736same way that <code class="docutils literal notranslate"><span class="pre">SO_BINDTODEVICE</span></code> is used, but with the index of a737network interface instead of its name.</p>738</div>739<div class="versionchanged">740<p><span class="versionmodified changed">Changed in version 3.14: </span>Added missing <code class="docutils literal notranslate"><span class="pre">IP_FREEBIND</span></code>, <code class="docutils literal notranslate"><span class="pre">IP_RECVERR</span></code>, <code class="docutils literal notranslate"><span class="pre">IPV6_RECVERR</span></code>,741<code class="docutils literal notranslate"><span class="pre">IP_RECVTTL</span></code>, and <code class="docutils literal notranslate"><span class="pre">IP_RECVORIGDSTADDR</span></code> on Linux.</p>742</div>743<div class="versionchanged">744<p><span class="versionmodified changed">Changed in version 3.14: </span>Added support for <code class="docutils literal notranslate"><span class="pre">TCP_QUICKACK</span></code> on Windows platforms when available.</p>745</div>746<div class="versionchanged">747<p><span class="versionmodified changed">Changed in version 3.15: </span><code class="docutils literal notranslate"><span class="pre">IPV6_HDRINCL</span></code> was added.</p>748</div>749</dd></dl>750 751<dl class="py data">752<dt class="sig sig-object py" id="socket.AF_CAN">753<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">AF_CAN</span></span><a class="headerlink" href="#socket.AF_CAN" title="Link to this definition">¶</a></dt>754<dt class="sig sig-object py" id="socket.PF_CAN">755<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">PF_CAN</span></span><a class="headerlink" href="#socket.PF_CAN" title="Link to this definition">¶</a></dt>756<dt class="sig sig-object py">757<span class="sig-name descname"><span class="pre">SOL_CAN_*</span></span></dt>758<dt class="sig sig-object py">759<span class="sig-name descname"><span class="pre">CAN_*</span></span></dt>760<dd><p>Many constants of these forms, documented in the Linux documentation, are761also defined in the socket module.</p>762<div class="availability docutils container">763<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 2.6.25, NetBSD >= 8.</p>764</div>765<div class="versionadded">766<p><span class="versionmodified added">Added in version 3.3.</span></p>767</div>768<div class="versionchanged">769<p><span class="versionmodified changed">Changed in version 3.11: </span>NetBSD support was added.</p>770</div>771<div class="versionchanged">772<p><span class="versionmodified changed">Changed in version 3.14: </span>Restored missing <code class="docutils literal notranslate"><span class="pre">CAN_RAW_ERR_FILTER</span></code> on Linux.</p>773</div>774</dd></dl>775 776<dl class="py data">777<dt class="sig sig-object py" id="socket.CAN_BCM">778<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">CAN_BCM</span></span><a class="headerlink" href="#socket.CAN_BCM" title="Link to this definition">¶</a></dt>779<dt class="sig sig-object py">780<span class="sig-name descname"><span class="pre">CAN_BCM_*</span></span></dt>781<dd><p>CAN_BCM, in the CAN protocol family, is the broadcast manager (BCM) protocol.782Broadcast manager constants, documented in the Linux documentation, are also783defined in the socket module.</p>784<div class="availability docutils container">785<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 2.6.25.</p>786</div>787<div class="admonition note">788<p class="admonition-title">Note</p>789<p>The <code class="xref py py-data docutils literal notranslate"><span class="pre">CAN_BCM_CAN_FD_FRAME</span></code> flag is only available on Linux >= 4.8.</p>790</div>791<div class="versionadded">792<p><span class="versionmodified added">Added in version 3.4.</span></p>793</div>794</dd></dl>795 796<dl class="py data">797<dt class="sig sig-object py" id="socket.CAN_RAW_FD_FRAMES">798<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">CAN_RAW_FD_FRAMES</span></span><a class="headerlink" href="#socket.CAN_RAW_FD_FRAMES" title="Link to this definition">¶</a></dt>799<dd><p>Enables CAN FD support in a CAN_RAW socket. This is disabled by default.800This allows your application to send both CAN and CAN FD frames; however,801you must accept both CAN and CAN FD frames when reading from the socket.</p>802<p>This constant is documented in the Linux documentation.</p>803<div class="availability docutils container">804<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 3.6.</p>805</div>806<div class="versionadded">807<p><span class="versionmodified added">Added in version 3.5.</span></p>808</div>809</dd></dl>810 811<dl class="py data">812<dt class="sig sig-object py" id="socket.CAN_RAW_JOIN_FILTERS">813<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">CAN_RAW_JOIN_FILTERS</span></span><a class="headerlink" href="#socket.CAN_RAW_JOIN_FILTERS" title="Link to this definition">¶</a></dt>814<dd><p>Joins the applied CAN filters such that only CAN frames that match all815given CAN filters are passed to user space.</p>816<p>This constant is documented in the Linux documentation.</p>817<div class="availability docutils container">818<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 4.1.</p>819</div>820<div class="versionadded">821<p><span class="versionmodified added">Added in version 3.9.</span></p>822</div>823</dd></dl>824 825<dl class="py data">826<dt class="sig sig-object py" id="socket.CAN_ISOTP">827<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">CAN_ISOTP</span></span><a class="headerlink" href="#socket.CAN_ISOTP" title="Link to this definition">¶</a></dt>828<dd><p>CAN_ISOTP, in the CAN protocol family, is the ISO-TP (ISO 15765-2) protocol.829ISO-TP constants, documented in the Linux documentation.</p>830<div class="availability docutils container">831<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 2.6.25.</p>832</div>833<div class="versionadded">834<p><span class="versionmodified added">Added in version 3.7.</span></p>835</div>836</dd></dl>837 838<dl class="py data">839<dt class="sig sig-object py" id="socket.CAN_J1939">840<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">CAN_J1939</span></span><a class="headerlink" href="#socket.CAN_J1939" title="Link to this definition">¶</a></dt>841<dd><p>CAN_J1939, in the CAN protocol family, is the SAE J1939 protocol.842J1939 constants, documented in the Linux documentation.</p>843<div class="availability docutils container">844<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 5.4.</p>845</div>846<div class="versionadded">847<p><span class="versionmodified added">Added in version 3.9.</span></p>848</div>849</dd></dl>850 851<dl class="py data">852<dt class="sig sig-object py" id="socket.AF_DIVERT">853<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">AF_DIVERT</span></span><a class="headerlink" href="#socket.AF_DIVERT" title="Link to this definition">¶</a></dt>854<dt class="sig sig-object py" id="socket.PF_DIVERT">855<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">PF_DIVERT</span></span><a class="headerlink" href="#socket.PF_DIVERT" title="Link to this definition">¶</a></dt>856<dd><p>These two constants, documented in the FreeBSD divert(4) manual page, are857also defined in the socket module.</p>858<div class="availability docutils container">859<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: FreeBSD >= 14.0.</p>860</div>861<div class="versionadded">862<p><span class="versionmodified added">Added in version 3.12.</span></p>863</div>864</dd></dl>865 866<dl class="py data">867<dt class="sig sig-object py" id="socket.AF_PACKET">868<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">AF_PACKET</span></span><a class="headerlink" href="#socket.AF_PACKET" title="Link to this definition">¶</a></dt>869<dt class="sig sig-object py" id="socket.PF_PACKET">870<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">PF_PACKET</span></span><a class="headerlink" href="#socket.PF_PACKET" title="Link to this definition">¶</a></dt>871<dt class="sig sig-object py">872<span class="sig-name descname"><span class="pre">PACKET_*</span></span></dt>873<dd><p>Many constants of these forms, documented in the Linux documentation, are874also defined in the socket module.</p>875<div class="availability docutils container">876<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 2.2.</p>877</div>878</dd></dl>879 880<dl class="py data">881<dt class="sig sig-object py" id="socket.ETH_P_ALL">882<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">ETH_P_ALL</span></span><a class="headerlink" href="#socket.ETH_P_ALL" title="Link to this definition">¶</a></dt>883<dd><p><code class="xref py py-data docutils literal notranslate"><span class="pre">ETH_P_ALL</span></code> can be used in the <a class="reference internal" href="#socket.socket" title="socket.socket"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket</span></code></a>884constructor as <em>proto</em> for the <a class="reference internal" href="#socket.AF_PACKET" title="socket.AF_PACKET"><code class="xref py py-const docutils literal notranslate"><span class="pre">AF_PACKET</span></code></a> family in order to885capture every packet, regardless of protocol.</p>886<p>For more information, see the <em class="manpage"><a class="manpage reference external" href="https://manpages.debian.org/packet(7)">packet(7)</a></em> manpage.</p>887<div class="availability docutils container">888<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux.</p>889</div>890<div class="versionadded">891<p><span class="versionmodified added">Added in version 3.12.</span></p>892</div>893</dd></dl>894 895<dl class="py data">896<dt class="sig sig-object py" id="socket.AF_RDS">897<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">AF_RDS</span></span><a class="headerlink" href="#socket.AF_RDS" title="Link to this definition">¶</a></dt>898<dt class="sig sig-object py" id="socket.PF_RDS">899<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">PF_RDS</span></span><a class="headerlink" href="#socket.PF_RDS" title="Link to this definition">¶</a></dt>900<dt class="sig sig-object py" id="socket.SOL_RDS">901<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOL_RDS</span></span><a class="headerlink" href="#socket.SOL_RDS" title="Link to this definition">¶</a></dt>902<dt class="sig sig-object py">903<span class="sig-name descname"><span class="pre">RDS_*</span></span></dt>904<dd><p>Many constants of these forms, documented in the Linux documentation, are905also defined in the socket module.</p>906<div class="availability docutils container">907<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 2.6.30.</p>908</div>909<div class="versionadded">910<p><span class="versionmodified added">Added in version 3.3.</span></p>911</div>912</dd></dl>913 914<dl class="py data">915<dt class="sig sig-object py" id="socket.SIO_RCVALL">916<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SIO_RCVALL</span></span><a class="headerlink" href="#socket.SIO_RCVALL" title="Link to this definition">¶</a></dt>917<dt class="sig sig-object py" id="socket.SIO_KEEPALIVE_VALS">918<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SIO_KEEPALIVE_VALS</span></span><a class="headerlink" href="#socket.SIO_KEEPALIVE_VALS" title="Link to this definition">¶</a></dt>919<dt class="sig sig-object py" id="socket.SIO_LOOPBACK_FAST_PATH">920<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SIO_LOOPBACK_FAST_PATH</span></span><a class="headerlink" href="#socket.SIO_LOOPBACK_FAST_PATH" title="Link to this definition">¶</a></dt>921<dt class="sig sig-object py">922<span class="sig-name descname"><span class="pre">RCVALL_*</span></span></dt>923<dd><p>Constants for Windows’ WSAIoctl(). The constants are used as arguments to the924<a class="reference internal" href="#socket.socket.ioctl" title="socket.socket.ioctl"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ioctl()</span></code></a> method of socket objects.</p>925<div class="versionchanged">926<p><span class="versionmodified changed">Changed in version 3.6: </span><code class="docutils literal notranslate"><span class="pre">SIO_LOOPBACK_FAST_PATH</span></code> was added.</p>927</div>928</dd></dl>929 930<dl class="py data">931<dt class="sig sig-object py">932<span class="sig-name descname"><span class="pre">TIPC_*</span></span></dt>933<dd><p>TIPC related constants, matching the ones exported by the C socket API. See934the TIPC documentation for more information.</p>935</dd></dl>936 937<dl class="py data">938<dt class="sig sig-object py" id="socket.AF_ALG">939<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">AF_ALG</span></span><a class="headerlink" href="#socket.AF_ALG" title="Link to this definition">¶</a></dt>940<dt class="sig sig-object py" id="socket.SOL_ALG">941<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOL_ALG</span></span><a class="headerlink" href="#socket.SOL_ALG" title="Link to this definition">¶</a></dt>942<dt class="sig sig-object py">943<span class="sig-name descname"><span class="pre">ALG_*</span></span></dt>944<dd><p>Constants for Linux Kernel cryptography.</p>945<div class="availability docutils container">946<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 2.6.38.</p>947</div>948<div class="versionadded">949<p><span class="versionmodified added">Added in version 3.6.</span></p>950</div>951</dd></dl>952 953<dl class="py data">954<dt class="sig sig-object py" id="socket.AF_VSOCK">955<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">AF_VSOCK</span></span><a class="headerlink" href="#socket.AF_VSOCK" title="Link to this definition">¶</a></dt>956<dt class="sig sig-object py" id="socket.IOCTL_VM_SOCKETS_GET_LOCAL_CID">957<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">IOCTL_VM_SOCKETS_GET_LOCAL_CID</span></span><a class="headerlink" href="#socket.IOCTL_VM_SOCKETS_GET_LOCAL_CID" title="Link to this definition">¶</a></dt>958<dt class="sig sig-object py">959<span class="sig-name descname"><span class="pre">VMADDR*</span></span></dt>960<dt class="sig sig-object py">961<span class="sig-name descname"><span class="pre">SO_VM*</span></span></dt>962<dd><p>Constants for Linux host/guest communication.</p>963<div class="availability docutils container">964<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 4.8.</p>965</div>966<div class="versionadded">967<p><span class="versionmodified added">Added in version 3.7.</span></p>968</div>969</dd></dl>970 971<dl class="py data">972<dt class="sig sig-object py" id="socket.AF_LINK">973<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">AF_LINK</span></span><a class="headerlink" href="#socket.AF_LINK" title="Link to this definition">¶</a></dt>974<dd><div class="availability docutils container">975<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: BSD, macOS.</p>976</div>977<div class="versionadded">978<p><span class="versionmodified added">Added in version 3.4.</span></p>979</div>980</dd></dl>981 982<dl class="py data">983<dt class="sig sig-object py" id="socket.has_ipv6">984<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">has_ipv6</span></span><a class="headerlink" href="#socket.has_ipv6" title="Link to this definition">¶</a></dt>985<dd><p>This constant contains a boolean value which indicates if IPv6 is supported on986this platform.</p>987</dd></dl>988 989<dl class="py data">990<dt class="sig sig-object py" id="socket.AF_BLUETOOTH">991<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">AF_BLUETOOTH</span></span><a class="headerlink" href="#socket.AF_BLUETOOTH" title="Link to this definition">¶</a></dt>992<dt class="sig sig-object py" id="socket.BTPROTO_L2CAP">993<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">BTPROTO_L2CAP</span></span><a class="headerlink" href="#socket.BTPROTO_L2CAP" title="Link to this definition">¶</a></dt>994<dt class="sig sig-object py" id="socket.BTPROTO_RFCOMM">995<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">BTPROTO_RFCOMM</span></span><a class="headerlink" href="#socket.BTPROTO_RFCOMM" title="Link to this definition">¶</a></dt>996<dt class="sig sig-object py" id="socket.BTPROTO_HCI">997<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">BTPROTO_HCI</span></span><a class="headerlink" href="#socket.BTPROTO_HCI" title="Link to this definition">¶</a></dt>998<dt class="sig sig-object py" id="socket.BTPROTO_SCO">999<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">BTPROTO_SCO</span></span><a class="headerlink" href="#socket.BTPROTO_SCO" title="Link to this definition">¶</a></dt>1000<dd><p>Integer constants for use with Bluetooth addresses.</p>1001</dd></dl>1002 1003<dl class="py data">1004<dt class="sig sig-object py" id="socket.BDADDR_ANY">1005<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">BDADDR_ANY</span></span><a class="headerlink" href="#socket.BDADDR_ANY" title="Link to this definition">¶</a></dt>1006<dt class="sig sig-object py" id="socket.BDADDR_LOCAL">1007<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">BDADDR_LOCAL</span></span><a class="headerlink" href="#socket.BDADDR_LOCAL" title="Link to this definition">¶</a></dt>1008<dd><p>These are string constants containing Bluetooth addresses with special1009meanings. For example, <a class="reference internal" href="#socket.BDADDR_ANY" title="socket.BDADDR_ANY"><code class="xref py py-const docutils literal notranslate"><span class="pre">BDADDR_ANY</span></code></a> can be used to indicate1010any address when specifying the binding socket with1011<a class="reference internal" href="#socket.BTPROTO_RFCOMM" title="socket.BTPROTO_RFCOMM"><code class="xref py py-const docutils literal notranslate"><span class="pre">BTPROTO_RFCOMM</span></code></a>.</p>1012</dd></dl>1013 1014<dl class="py data">1015<dt class="sig sig-object py" id="socket.BDADDR_BREDR">1016<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">BDADDR_BREDR</span></span><a class="headerlink" href="#socket.BDADDR_BREDR" title="Link to this definition">¶</a></dt>1017<dt class="sig sig-object py" id="socket.BDADDR_LE_PUBLIC">1018<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">BDADDR_LE_PUBLIC</span></span><a class="headerlink" href="#socket.BDADDR_LE_PUBLIC" title="Link to this definition">¶</a></dt>1019<dt class="sig sig-object py" id="socket.BDADDR_LE_RANDOM">1020<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">BDADDR_LE_RANDOM</span></span><a class="headerlink" href="#socket.BDADDR_LE_RANDOM" title="Link to this definition">¶</a></dt>1021<dd><p>These constants describe the Bluetooth address type when binding or1022connecting a <a class="reference internal" href="#socket.BTPROTO_L2CAP" title="socket.BTPROTO_L2CAP"><code class="xref py py-const docutils literal notranslate"><span class="pre">BTPROTO_L2CAP</span></code></a> socket.</p>1023<div class="availability docutils container">1024<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux, FreeBSD</p>1025</div>1026<div class="versionadded">1027<p><span class="versionmodified added">Added in version 3.14.</span></p>1028</div>1029</dd></dl>1030 1031<dl class="py data">1032<dt class="sig sig-object py" id="socket.SOL_RFCOMM">1033<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOL_RFCOMM</span></span><a class="headerlink" href="#socket.SOL_RFCOMM" title="Link to this definition">¶</a></dt>1034<dt class="sig sig-object py" id="socket.SOL_L2CAP">1035<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOL_L2CAP</span></span><a class="headerlink" href="#socket.SOL_L2CAP" title="Link to this definition">¶</a></dt>1036<dt class="sig sig-object py" id="socket.SOL_HCI">1037<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOL_HCI</span></span><a class="headerlink" href="#socket.SOL_HCI" title="Link to this definition">¶</a></dt>1038<dt class="sig sig-object py" id="socket.SOL_SCO">1039<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOL_SCO</span></span><a class="headerlink" href="#socket.SOL_SCO" title="Link to this definition">¶</a></dt>1040<dt class="sig sig-object py" id="socket.SOL_BLUETOOTH">1041<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SOL_BLUETOOTH</span></span><a class="headerlink" href="#socket.SOL_BLUETOOTH" title="Link to this definition">¶</a></dt>1042<dd><p>Used in the level argument to the <a class="reference internal" href="#socket.socket.setsockopt" title="socket.socket.setsockopt"><code class="xref py py-meth docutils literal notranslate"><span class="pre">setsockopt()</span></code></a> and1043<a class="reference internal" href="#socket.socket.getsockopt" title="socket.socket.getsockopt"><code class="xref py py-meth docutils literal notranslate"><span class="pre">getsockopt()</span></code></a> methods of Bluetooth socket objects.</p>1044<p><a class="reference internal" href="#socket.SOL_BLUETOOTH" title="socket.SOL_BLUETOOTH"><code class="xref py py-const docutils literal notranslate"><span class="pre">SOL_BLUETOOTH</span></code></a> is only available on Linux. Other constants1045are available if the corresponding protocol is supported.</p>1046</dd></dl>1047 1048<dl class="py data">1049<dt class="sig sig-object py">1050<span class="sig-name descname"><span class="pre">SO_L2CAP_*</span></span></dt>1051<dt class="sig sig-object py" id="socket.L2CAP_LM">1052<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">L2CAP_LM</span></span><a class="headerlink" href="#socket.L2CAP_LM" title="Link to this definition">¶</a></dt>1053<dt class="sig sig-object py">1054<span class="sig-name descname"><span class="pre">L2CAP_LM_*</span></span></dt>1055<dt class="sig sig-object py">1056<span class="sig-name descname"><span class="pre">SO_RFCOMM_*</span></span></dt>1057<dt class="sig sig-object py">1058<span class="sig-name descname"><span class="pre">RFCOMM_LM_*</span></span></dt>1059<dt class="sig sig-object py">1060<span class="sig-name descname"><span class="pre">SO_SCO_*</span></span></dt>1061<dt class="sig sig-object py">1062<span class="sig-name descname"><span class="pre">SO_BTH_*</span></span></dt>1063<dt class="sig sig-object py">1064<span class="sig-name descname"><span class="pre">BT_*</span></span></dt>1065<dd><p>Used in the option name and value argument to the <a class="reference internal" href="#socket.socket.setsockopt" title="socket.socket.setsockopt"><code class="xref py py-meth docutils literal notranslate"><span class="pre">setsockopt()</span></code></a>1066and <a class="reference internal" href="#socket.socket.getsockopt" title="socket.socket.getsockopt"><code class="xref py py-meth docutils literal notranslate"><span class="pre">getsockopt()</span></code></a> methods of Bluetooth socket objects.</p>1067<p><code class="xref py py-const docutils literal notranslate"><span class="pre">BT_*</span></code> and <a class="reference internal" href="#socket.L2CAP_LM" title="socket.L2CAP_LM"><code class="xref py py-const docutils literal notranslate"><span class="pre">L2CAP_LM</span></code></a> are only available on Linux.1068<code class="xref py py-const docutils literal notranslate"><span class="pre">SO_BTH_*</span></code> are only available on Windows.1069Other constants may be available on Linux and various BSD platforms.</p>1070<div class="versionadded">1071<p><span class="versionmodified added">Added in version 3.14.</span></p>1072</div>1073</dd></dl>1074 1075<dl class="py data">1076<dt class="sig sig-object py" id="socket.HCI_FILTER">1077<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HCI_FILTER</span></span><a class="headerlink" href="#socket.HCI_FILTER" title="Link to this definition">¶</a></dt>1078<dt class="sig sig-object py" id="socket.HCI_TIME_STAMP">1079<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HCI_TIME_STAMP</span></span><a class="headerlink" href="#socket.HCI_TIME_STAMP" title="Link to this definition">¶</a></dt>1080<dt class="sig sig-object py" id="socket.HCI_DATA_DIR">1081<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HCI_DATA_DIR</span></span><a class="headerlink" href="#socket.HCI_DATA_DIR" title="Link to this definition">¶</a></dt>1082<dt class="sig sig-object py" id="socket.SO_HCI_EVT_FILTER">1083<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SO_HCI_EVT_FILTER</span></span><a class="headerlink" href="#socket.SO_HCI_EVT_FILTER" title="Link to this definition">¶</a></dt>1084<dt class="sig sig-object py" id="socket.SO_HCI_PKT_FILTER">1085<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SO_HCI_PKT_FILTER</span></span><a class="headerlink" href="#socket.SO_HCI_PKT_FILTER" title="Link to this definition">¶</a></dt>1086<dd><p>Option names for use with <a class="reference internal" href="#socket.BTPROTO_HCI" title="socket.BTPROTO_HCI"><code class="xref py py-const docutils literal notranslate"><span class="pre">BTPROTO_HCI</span></code></a>.1087Availability and format of the option values depend on platform.</p>1088<div class="versionchanged">1089<p><span class="versionmodified changed">Changed in version 3.14: </span>Added <code class="xref py py-const docutils literal notranslate"><span class="pre">SO_HCI_EVT_FILTER</span></code> and <code class="xref py py-const docutils literal notranslate"><span class="pre">SO_HCI_PKT_FILTER</span></code>1090on NetBSD and DragonFly BSD.1091Added <code class="xref py py-const docutils literal notranslate"><span class="pre">HCI_DATA_DIR</span></code> on FreeBSD, NetBSD and DragonFly BSD.</p>1092</div>1093</dd></dl>1094 1095<dl class="py data">1096<dt class="sig sig-object py" id="socket.HCI_DEV_NONE">1097<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HCI_DEV_NONE</span></span><a class="headerlink" href="#socket.HCI_DEV_NONE" title="Link to this definition">¶</a></dt>1098<dd><p>The <code class="docutils literal notranslate"><span class="pre">device_id</span></code> value used to create an HCI socket that isn’t specific1099to a single Bluetooth adapter.</p>1100<div class="availability docutils container">1101<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux</p>1102</div>1103<div class="versionadded">1104<p><span class="versionmodified added">Added in version 3.14.</span></p>1105</div>1106</dd></dl>1107 1108<dl class="py data">1109<dt class="sig sig-object py" id="socket.HCI_CHANNEL_RAW">1110<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HCI_CHANNEL_RAW</span></span><a class="headerlink" href="#socket.HCI_CHANNEL_RAW" title="Link to this definition">¶</a></dt>1111<dt class="sig sig-object py" id="socket.HCI_CHANNEL_USER">1112<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HCI_CHANNEL_USER</span></span><a class="headerlink" href="#socket.HCI_CHANNEL_USER" title="Link to this definition">¶</a></dt>1113<dt class="sig sig-object py" id="socket.HCI_CHANNEL_MONITOR">1114<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HCI_CHANNEL_MONITOR</span></span><a class="headerlink" href="#socket.HCI_CHANNEL_MONITOR" title="Link to this definition">¶</a></dt>1115<dt class="sig sig-object py" id="socket.HCI_CHANNEL_CONTROL">1116<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HCI_CHANNEL_CONTROL</span></span><a class="headerlink" href="#socket.HCI_CHANNEL_CONTROL" title="Link to this definition">¶</a></dt>1117<dt class="sig sig-object py" id="socket.HCI_CHANNEL_LOGGING">1118<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HCI_CHANNEL_LOGGING</span></span><a class="headerlink" href="#socket.HCI_CHANNEL_LOGGING" title="Link to this definition">¶</a></dt>1119<dd><p>Possible values for <code class="docutils literal notranslate"><span class="pre">channel</span></code> field in the <a class="reference internal" href="#socket.BTPROTO_HCI" title="socket.BTPROTO_HCI"><code class="xref py py-const docutils literal notranslate"><span class="pre">BTPROTO_HCI</span></code></a> address.</p>1120<div class="availability docutils container">1121<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux</p>1122</div>1123<div class="versionadded">1124<p><span class="versionmodified added">Added in version 3.14.</span></p>1125</div>1126</dd></dl>1127 1128<dl class="py data">1129<dt class="sig sig-object py" id="socket.AF_QIPCRTR">1130<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">AF_QIPCRTR</span></span><a class="headerlink" href="#socket.AF_QIPCRTR" title="Link to this definition">¶</a></dt>1131<dd><p>Constant for Qualcomm’s IPC router protocol, used to communicate with1132service providing remote processors.</p>1133<div class="availability docutils container">1134<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 4.7.</p>1135</div>1136</dd></dl>1137 1138<dl class="py data">1139<dt class="sig sig-object py" id="socket.SCM_CREDS2">1140<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SCM_CREDS2</span></span><a class="headerlink" href="#socket.SCM_CREDS2" title="Link to this definition">¶</a></dt>1141<dt class="sig sig-object py" id="socket.LOCAL_CREDS">1142<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">LOCAL_CREDS</span></span><a class="headerlink" href="#socket.LOCAL_CREDS" title="Link to this definition">¶</a></dt>1143<dt class="sig sig-object py" id="socket.LOCAL_CREDS_PERSISTENT">1144<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">LOCAL_CREDS_PERSISTENT</span></span><a class="headerlink" href="#socket.LOCAL_CREDS_PERSISTENT" title="Link to this definition">¶</a></dt>1145<dd><p>LOCAL_CREDS and LOCAL_CREDS_PERSISTENT can be used1146with SOCK_DGRAM, SOCK_STREAM sockets, equivalent to1147Linux/DragonFlyBSD SO_PASSCRED, while LOCAL_CREDS1148sends the credentials at first read, LOCAL_CREDS_PERSISTENT1149sends for each read, SCM_CREDS2 must be then used for1150the latter for the message type.</p>1151<div class="versionadded">1152<p><span class="versionmodified added">Added in version 3.11.</span></p>1153</div>1154<div class="availability docutils container">1155<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: FreeBSD.</p>1156</div>1157</dd></dl>1158 1159<dl class="py data">1160<dt class="sig sig-object py" id="socket.SO_INCOMING_CPU">1161<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SO_INCOMING_CPU</span></span><a class="headerlink" href="#socket.SO_INCOMING_CPU" title="Link to this definition">¶</a></dt>1162<dd><p>Constant to optimize CPU locality, to be used in conjunction with1163<code class="xref py py-data docutils literal notranslate"><span class="pre">SO_REUSEPORT</span></code>.</p>1164<div class="versionadded">1165<p><span class="versionmodified added">Added in version 3.11.</span></p>1166</div>1167<div class="availability docutils container">1168<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: Linux >= 3.9</p>1169</div>1170</dd></dl>1171 1172<dl class="py data">1173<dt class="sig sig-object py" id="socket.SO_REUSEPORT_LB">1174<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">SO_REUSEPORT_LB</span></span><a class="headerlink" href="#socket.SO_REUSEPORT_LB" title="Link to this definition">¶</a></dt>1175<dd><blockquote>1176<div><p>Constant to enable duplicate address and port bindings with load balancing.</p>1177</div></blockquote>1178<div class="versionadded">1179<p><span class="versionmodified added">Added in version 3.14.</span></p>1180</div>1181<div class="availability docutils container">1182<p><a class="reference internal" href="intro.html#availability"><span class="std std-ref">Availability</span></a>: FreeBSD >= 12.0</p>1183</div>1184</dd></dl>1185 1186<dl class="py data">1187<dt class="sig sig-object py" id="socket.AF_HYPERV">1188<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">AF_HYPERV</span></span><a class="headerlink" href="#socket.AF_HYPERV" title="Link to this definition">¶</a></dt>1189<dt class="sig sig-object py" id="socket.HV_PROTOCOL_RAW">1190<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HV_PROTOCOL_RAW</span></span><a class="headerlink" href="#socket.HV_PROTOCOL_RAW" title="Link to this definition">¶</a></dt>1191<dt class="sig sig-object py" id="socket.HVSOCKET_CONNECT_TIMEOUT">1192<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HVSOCKET_CONNECT_TIMEOUT</span></span><a class="headerlink" href="#socket.HVSOCKET_CONNECT_TIMEOUT" title="Link to this definition">¶</a></dt>1193<dt class="sig sig-object py" id="socket.HVSOCKET_CONNECT_TIMEOUT_MAX">1194<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HVSOCKET_CONNECT_TIMEOUT_MAX</span></span><a class="headerlink" href="#socket.HVSOCKET_CONNECT_TIMEOUT_MAX" title="Link to this definition">¶</a></dt>1195<dt class="sig sig-object py" id="socket.HVSOCKET_CONNECTED_SUSPEND">1196<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HVSOCKET_CONNECTED_SUSPEND</span></span><a class="headerlink" href="#socket.HVSOCKET_CONNECTED_SUSPEND" title="Link to this definition">¶</a></dt>1197<dt class="sig sig-object py" id="socket.HVSOCKET_ADDRESS_FLAG_PASSTHRU">1198<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HVSOCKET_ADDRESS_FLAG_PASSTHRU</span></span><a class="headerlink" href="#socket.HVSOCKET_ADDRESS_FLAG_PASSTHRU" title="Link to this definition">¶</a></dt>1199<dt class="sig sig-object py" id="socket.HV_GUID_ZERO">1200<span class="sig-prename descclassname"><span class="pre">socket.</span></span><span class="sig-name descname"><span class="pre">HV_GUID_ZERO</span></span><a class="headerlink" href="#socket.HV_GUID_ZERO" title="Link to this definition">¶</a></dt>