"Fossies" - the Fresh Open Source Software Archive

Member "dmd2/html/d/phobos/std_socket.html" (20 Nov 2020, 204051 Bytes) of package /linux/misc/dmd.2.094.2.linux.tar.xz:


The requested HTML page contains a <FORM> tag that is unusable on "Fossies" in "automatic" (rendered) mode so that page is shown as HTML source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 
    2 <!DOCTYPE html>
    3 <html lang="en-US">
    4 <!--
    5     Copyright (c) 1999-2020 by the D Language Foundation
    6     All Rights Reserved.
    7     https://dlang.org/foundation_overview.html
    8   -->
    9 <head>
   10 <meta charset="utf-8">
   11 <meta name="keywords" content="D programming language">
   12 <meta name="description" content="D Programming Language">
   13 <title>std.socket - D Programming Language</title>
   14 
   15 <link rel="stylesheet" href="../css/codemirror.css">
   16 <link rel="stylesheet" href="../css/style.css">
   17 <link rel="stylesheet" href="../css/print.css" media="print">
   18 <link rel="shortcut icon" href="../favicon.ico">
   19 <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.1, maximum-scale=10.0">
   20 
   21 </head>
   22 <body id='std.socket' class='std'>
   23 <script type="text/javascript">document.body.className += ' have-javascript'</script>
   24 <div id="top"><div class="helper"><div class="helper expand-container">    <div class="logo"><a href=".."><img id="logo" alt="D Logo" src="../images/dlogo.svg"></a></div>
   25     <a href="../menu.html" title="Menu" class="hamburger expand-toggle"><span>Menu</span></a>
   26     
   27 <div id="cssmenu"><ul>    <li><a href='https://tour.dlang.org'><span>Learn</span></a></li>
   28     <li class='expand-container'><a class='expand-toggle' href='../documentation.html'><span>Documentation</span></a>
   29       
   30 <ul class='expand-content'>    <li><a href='../spec/spec.html'>Language Reference</a></li>
   31     <li><a href='../phobos/index.html'>Library Reference</a></li>
   32     <li><a href='../dmd.html'>Command-line Reference</a></li>
   33     <li class="menu-divider"><a href='../comparison.html'>Feature Overview</a></li>
   34     <li><a href='../articles.html'>Articles</a></li>
   35  </ul></li>
   36     <li><a href='../download.html'><span>Downloads</span></a></li>
   37     <li><a href='https://code.dlang.org'><span>Packages</span></a></li>
   38     <li class='expand-container'><a class='expand-toggle' href='../community.html'><span>Community</span></a>
   39       
   40 <ul class='expand-content'>    <li><a href='https://dlang.org/blog'>Blog</a></li>
   41     <li><a href='../orgs-using-d.html'>Orgs using D</a></li>
   42     <li><a href='https://twitter.com/search?q=%23dlang'>Twitter</a></li>
   43     <li><a href='../calendar.html'>Calendar</a></li>
   44     <li class="menu-divider"><a href='https://forum.dlang.org'>Forums</a></li>
   45     <li><a href='irc://irc.freenode.net/d'>IRC</a></li>
   46     <li><a href='https://discord.gg/bMZk9Q4'>Community Discord</a></li>
   47     <li><a href='https://wiki.dlang.org'>Wiki</a></li>
   48     <li class="menu-divider"><a href='https://github.com/dlang'>GitHub</a></li>
   49     <li><a href='../bugstats.html'>Issues</a></li>
   50     <li><a href='https://wiki.dlang.org/Get_involved'>Get involved</a></li>
   51     <li class="menu-divider"><a href='../foundation/contributors.html'>Contributors</a></li>
   52     <li><a href='../foundation/index.html'>Foundation</a></li>
   53     <li><a href='..//security.html'>Security Team</a></li>
   54     <li><a href='../foundation/donate.html'>Donate</a></li>
   55     <li><a href='../foundation/sponsors.html'>Sponsors</a></li>
   56  </ul></li>
   57     <li class='expand-container'><a class='expand-toggle' href='../resources.html'><span>Resources</span></a>
   58       
   59 <ul class='expand-content'>    <li><a href='https://tour.dlang.org'>Tour</a></li>
   60     <li><a href='https://wiki.dlang.org/Books'>Books</a></li>
   61     <li><a href='https://wiki.dlang.org/Tutorials'>Tutorials</a></li>
   62     <li class="menu-divider"><a href='https://wiki.dlang.org/Development_tools'>Tools</a></li>
   63     <li><a href='https://wiki.dlang.org/Editors'>Editors</a></li>
   64     <li><a href='https://wiki.dlang.org/IDEs'>IDEs</a></li>
   65     <li><a href='https://run.dlang.io'>run.dlang.io</a></li>
   66     <li><a href='http://rainers.github.io/visuald/visuald/StartPage.html'>Visual D</a></li>
   67     <li class="menu-divider"><a href='../acknowledgements.html'>Acknowledgments</a></li>
   68     <li><a href='../dstyle.html'>D Style</a></li>
   69     <li><a href='../glossary.html'>Glossary</a></li>
   70     <li><a href='../sitemap.html'>Sitemap</a></li>
   71  </ul></li>
   72 </ul></div>
   73     <div class="search-container expand-container">        <a href="../search.html" class="expand-toggle" title="Search"><span>Search</span></a>
   74         
   75     <div id="search-box">        <form method="get" action="https://google.com/search">
   76             <input type="hidden" id="domains" name="domains" value="dlang.org">
   77             <input type="hidden" id="sourceid" name="sourceid" value="google-search">
   78             <span id="search-query"><input id="q" name="q" placeholder="Search"></span><span id="search-dropdown"><span class="helper">                <select id="sitesearch" name="sitesearch" size="1">
   79                     <option value="dlang.org">Entire Site</option>
   80                     <option  value="dlang.org/spec">Language</option>
   81                     <option selected value="dlang.org/phobos">Library</option>
   82                     <option  value="forum.dlang.org">Forums</option>
   83                     
   84                 </select>
   85             </span></span><span id="search-submit"><button type="submit"><i class="fa fa-search"></i><span>go</span></button></span>
   86         </form>
   87     </div>
   88     </div>
   89 </div></div></div>
   90 
   91 <div class="container">    
   92 <div class="subnav-helper"></div> <div class="subnav">    <div class="head">        <h2>Library Reference</h2>
   93         <p><span class="smallprint">version 2.094.2 <span class="separator"><br></span>
   94             </span>
   95         </p>
   96         <p><a href="index.html">overview</a></p>
   97     </div>
   98     <ul>
   99 
  100 <li><a href='object.html'><span><em class="tt">object</em></span></a></li>
  101 
  102 <li class='expand-container modlist-submenu-std'><a class='expand-toggle' href='#'><span><em class="tt">std</em></span></a>
  103 <ul><li>  <a href="std_algorithm.html" title="std.algorithm"><span class="d_inlinecode donthyphenate notranslate">algorithm</span></a><ul><li>    <a href="std_algorithm_comparison.html" title="std.algorithm.comparison"><span class="d_inlinecode donthyphenate notranslate">comparison</span></a></li><li>    <a href="std_algorithm_iteration.html" title="std.algorithm.iteration"><span class="d_inlinecode donthyphenate notranslate">iteration</span></a></li><li>    <a href="std_algorithm_mutation.html" title="std.algorithm.mutation"><span class="d_inlinecode donthyphenate notranslate">mutation</span></a></li><li>    <a href="std_algorithm_searching.html" title="std.algorithm.searching"><span class="d_inlinecode donthyphenate notranslate">searching</span></a></li><li>    <a href="std_algorithm_setops.html" title="std.algorithm.setops"><span class="d_inlinecode donthyphenate notranslate">setops</span></a></li><li>    <a href="std_algorithm_sorting.html" title="std.algorithm.sorting"><span class="d_inlinecode donthyphenate notranslate">sorting</span></a>
  104   </li></ul></li><li>  <a href="std_array.html" title="std.array"><span class="d_inlinecode donthyphenate notranslate">array</span></a></li><li>  <a href="std_ascii.html" title="std.ascii"><span class="d_inlinecode donthyphenate notranslate">ascii</span></a></li><li>  <a href="std_base64.html" title="std.base64"><span class="d_inlinecode donthyphenate notranslate">base64</span></a></li><li>  <a href="std_bigint.html" title="std.bigint"><span class="d_inlinecode donthyphenate notranslate">bigint</span></a></li><li>  <a href="std_bitmanip.html" title="std.bitmanip"><span class="d_inlinecode donthyphenate notranslate">bitmanip</span></a></li><li>  <a href="std_compiler.html" title="std.compiler"><span class="d_inlinecode donthyphenate notranslate">compiler</span></a></li><li>  <a href="std_complex.html" title="std.complex"><span class="d_inlinecode donthyphenate notranslate">complex</span></a></li><li>  <a href="std_concurrency.html" title="std.concurrency"><span class="d_inlinecode donthyphenate notranslate">concurrency</span></a></li><li>  <a href="std_container.html" title="std.container"><span class="d_inlinecode donthyphenate notranslate">container</span></a><ul><li>    <a href="std_container_array.html" title="std.container.array"><span class="d_inlinecode donthyphenate notranslate">array</span></a></li><li>    <a href="std_container_binaryheap.html" title="std.container.binaryheap"><span class="d_inlinecode donthyphenate notranslate">binaryheap</span></a></li><li>    <a href="std_container_dlist.html" title="std.container.dlist"><span class="d_inlinecode donthyphenate notranslate">dlist</span></a></li><li>    <a href="std_container_rbtree.html" title="std.container.rbtree"><span class="d_inlinecode donthyphenate notranslate">rbtree</span></a></li><li>    <a href="std_container_slist.html" title="std.container.slist"><span class="d_inlinecode donthyphenate notranslate">slist</span></a></li><li>    <a href="std_container_util.html" title="std.container.util"><span class="d_inlinecode donthyphenate notranslate">util</span></a>
  105   </li></ul></li><li>  <a href="std_conv.html" title="std.conv"><span class="d_inlinecode donthyphenate notranslate">conv</span></a></li><li>  <a href="std_csv.html" title="std.csv"><span class="d_inlinecode donthyphenate notranslate">csv</span></a></li><li>  <a href="std_datetime.html" title="std.datetime"><span class="d_inlinecode donthyphenate notranslate">datetime</span></a><ul><li>    <a href="std_datetime_date.html" title="std.datetime.date"><span class="d_inlinecode donthyphenate notranslate">date</span></a></li><li>    <a href="std_datetime_interval.html" title="std.datetime.interval"><span class="d_inlinecode donthyphenate notranslate">interval</span></a></li><li>    <a href="std_datetime_stopwatch.html" title="std.datetime.stopwatch"><span class="d_inlinecode donthyphenate notranslate">stopwatch</span></a></li><li>    <a href="std_datetime_systime.html" title="std.datetime.systime"><span class="d_inlinecode donthyphenate notranslate">systime</span></a></li><li>    <a href="std_datetime_timezone.html" title="std.datetime.timezone"><span class="d_inlinecode donthyphenate notranslate">timezone</span></a>
  106   </li></ul></li><li>  <a href="std_demangle.html" title="std.demangle"><span class="d_inlinecode donthyphenate notranslate">demangle</span></a></li><li>  <a href="std_digest.html" title="std.digest"><span class="d_inlinecode donthyphenate notranslate">digest</span></a><ul><li>    <a href="std_digest_crc.html" title="std.digest.crc"><span class="d_inlinecode donthyphenate notranslate">crc</span></a></li><li>    <a href="std_digest_hmac.html" title="std.digest.hmac"><span class="d_inlinecode donthyphenate notranslate">hmac</span></a></li><li>    <a href="std_digest_md.html" title="std.digest.md"><span class="d_inlinecode donthyphenate notranslate">md</span></a></li><li>    <a href="std_digest_murmurhash.html" title="std.digest.murmurhash"><span class="d_inlinecode donthyphenate notranslate">murmurhash</span></a></li><li>    <a href="std_digest_ripemd.html" title="std.digest.ripemd"><span class="d_inlinecode donthyphenate notranslate">ripemd</span></a></li><li>    <a href="std_digest_sha.html" title="std.digest.sha"><span class="d_inlinecode donthyphenate notranslate">sha</span></a>
  107   </li></ul></li><li>  <a href="std_encoding.html" title="std.encoding"><span class="d_inlinecode donthyphenate notranslate">encoding</span></a></li><li>  <a href="std_exception.html" title="std.exception"><span class="d_inlinecode donthyphenate notranslate">exception</span></a></li><li>  <h7><span class="d_inlinecode donthyphenate notranslate">experimental</span></h7><ul><li>    <a href="std_experimental_allocator.html" title="std.experimental.allocator"><span class="d_inlinecode donthyphenate notranslate">allocator</span></a><ul><li>      <a href="std_experimental_allocator_building_blocks.html" title="std.experimental.allocator.building_blocks"><span class="d_inlinecode donthyphenate notranslate">building_blocks</span></a><ul><li>        <a href="std_experimental_allocator_building_blocks_affix_allocator.html" title="std.experimental.allocator.building_blocks.affix_allocator"><span class="d_inlinecode donthyphenate notranslate">affix_allocator</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_aligned_block_list.html" title="std.experimental.allocator.building_blocks.aligned_block_list"><span class="d_inlinecode donthyphenate notranslate">aligned_block_list</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_allocator_list.html" title="std.experimental.allocator.building_blocks.allocator_list"><span class="d_inlinecode donthyphenate notranslate">allocator_list</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_ascending_page_allocator.html" title="std.experimental.allocator.building_blocks.ascending_page_allocator"><span class="d_inlinecode donthyphenate notranslate">ascending_page_allocator</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_bitmapped_block.html" title="std.experimental.allocator.building_blocks.bitmapped_block"><span class="d_inlinecode donthyphenate notranslate">bitmapped_block</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_bucketizer.html" title="std.experimental.allocator.building_blocks.bucketizer"><span class="d_inlinecode donthyphenate notranslate">bucketizer</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_fallback_allocator.html" title="std.experimental.allocator.building_blocks.fallback_allocator"><span class="d_inlinecode donthyphenate notranslate">fallback_allocator</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_free_list.html" title="std.experimental.allocator.building_blocks.free_list"><span class="d_inlinecode donthyphenate notranslate">free_list</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_free_tree.html" title="std.experimental.allocator.building_blocks.free_tree"><span class="d_inlinecode donthyphenate notranslate">free_tree</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_kernighan_ritchie.html" title="std.experimental.allocator.building_blocks.kernighan_ritchie"><span class="d_inlinecode donthyphenate notranslate">kernighan_ritchie</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_null_allocator.html" title="std.experimental.allocator.building_blocks.null_allocator"><span class="d_inlinecode donthyphenate notranslate">null_allocator</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_quantizer.html" title="std.experimental.allocator.building_blocks.quantizer"><span class="d_inlinecode donthyphenate notranslate">quantizer</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_region.html" title="std.experimental.allocator.building_blocks.region"><span class="d_inlinecode donthyphenate notranslate">region</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_scoped_allocator.html" title="std.experimental.allocator.building_blocks.scoped_allocator"><span class="d_inlinecode donthyphenate notranslate">scoped_allocator</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_segregator.html" title="std.experimental.allocator.building_blocks.segregator"><span class="d_inlinecode donthyphenate notranslate">segregator</span></a></li><li>        <a href="std_experimental_allocator_building_blocks_stats_collector.html" title="std.experimental.allocator.building_blocks.stats_collector"><span class="d_inlinecode donthyphenate notranslate">stats_collector</span></a>
  108       </li></ul></li><li>      <a href="std_experimental_allocator_common.html" title="std.experimental.allocator.common"><span class="d_inlinecode donthyphenate notranslate">common</span></a></li><li>      <a href="std_experimental_allocator_gc_allocator.html" title="std.experimental.allocator.gc_allocator"><span class="d_inlinecode donthyphenate notranslate">gc_allocator</span></a></li><li>      <a href="std_experimental_allocator_mallocator.html" title="std.experimental.allocator.mallocator"><span class="d_inlinecode donthyphenate notranslate">mallocator</span></a></li><li>      <a href="std_experimental_allocator_mmap_allocator.html" title="std.experimental.allocator.mmap_allocator"><span class="d_inlinecode donthyphenate notranslate">mmap_allocator</span></a></li><li>      <a href="std_experimental_allocator_showcase.html" title="std.experimental.allocator.showcase"><span class="d_inlinecode donthyphenate notranslate">showcase</span></a></li><li>      <a href="std_experimental_allocator_typed.html" title="std.experimental.allocator.typed"><span class="d_inlinecode donthyphenate notranslate">typed</span></a>
  109     </li></ul></li><li>    <a href="std_experimental_checkedint.html" title="std.experimental.checkedint"><span class="d_inlinecode donthyphenate notranslate">checkedint</span></a></li><li>    <a href="std_experimental_logger.html" title="std.experimental.logger"><span class="d_inlinecode donthyphenate notranslate">logger</span></a><ul><li>      <a href="std_experimental_logger_core.html" title="std.experimental.logger.core"><span class="d_inlinecode donthyphenate notranslate">core</span></a></li><li>      <a href="std_experimental_logger_filelogger.html" title="std.experimental.logger.filelogger"><span class="d_inlinecode donthyphenate notranslate">filelogger</span></a></li><li>      <a href="std_experimental_logger_multilogger.html" title="std.experimental.logger.multilogger"><span class="d_inlinecode donthyphenate notranslate">multilogger</span></a></li><li>      <a href="std_experimental_logger_nulllogger.html" title="std.experimental.logger.nulllogger"><span class="d_inlinecode donthyphenate notranslate">nulllogger</span></a>
  110     </li></ul></li><li>    <a href="std_experimental_typecons.html" title="std.experimental.typecons"><span class="d_inlinecode donthyphenate notranslate">typecons</span></a>
  111   </li></ul></li><li>  <a href="std_file.html" title="std.file"><span class="d_inlinecode donthyphenate notranslate">file</span></a></li><li>  <a href="std_format.html" title="std.format"><span class="d_inlinecode donthyphenate notranslate">format</span></a></li><li>  <a href="std_functional.html" title="std.functional"><span class="d_inlinecode donthyphenate notranslate">functional</span></a></li><li>  <a href="std_getopt.html" title="std.getopt"><span class="d_inlinecode donthyphenate notranslate">getopt</span></a></li><li>  <a href="std_json.html" title="std.json"><span class="d_inlinecode donthyphenate notranslate">json</span></a></li><li>  <a href="std_math.html" title="std.math"><span class="d_inlinecode donthyphenate notranslate">math</span></a></li><li>  <a href="std_mathspecial.html" title="std.mathspecial"><span class="d_inlinecode donthyphenate notranslate">mathspecial</span></a></li><li>  <a href="std_meta.html" title="std.meta"><span class="d_inlinecode donthyphenate notranslate">meta</span></a></li><li>  <a href="std_mmfile.html" title="std.mmfile"><span class="d_inlinecode donthyphenate notranslate">mmfile</span></a></li><li>  <h7><span class="d_inlinecode donthyphenate notranslate">net</span></h7><ul><li>    <a href="std_net_curl.html" title="std.net.curl"><span class="d_inlinecode donthyphenate notranslate">curl</span></a></li><li>    <a href="std_net_isemail.html" title="std.net.isemail"><span class="d_inlinecode donthyphenate notranslate">isemail</span></a>
  112   </li></ul></li><li>  <a href="std_numeric.html" title="std.numeric"><span class="d_inlinecode donthyphenate notranslate">numeric</span></a></li><li>  <a href="std_outbuffer.html" title="std.outbuffer"><span class="d_inlinecode donthyphenate notranslate">outbuffer</span></a></li><li>  <a href="std_parallelism.html" title="std.parallelism"><span class="d_inlinecode donthyphenate notranslate">parallelism</span></a></li><li>  <a href="std_path.html" title="std.path"><span class="d_inlinecode donthyphenate notranslate">path</span></a></li><li>  <a href="std_process.html" title="std.process"><span class="d_inlinecode donthyphenate notranslate">process</span></a></li><li>  <a href="std_random.html" title="std.random"><span class="d_inlinecode donthyphenate notranslate">random</span></a></li><li>  <a href="std_range.html" title="std.range"><span class="d_inlinecode donthyphenate notranslate">range</span></a><ul><li>    <a href="std_range_interfaces.html" title="std.range.interfaces"><span class="d_inlinecode donthyphenate notranslate">interfaces</span></a></li><li>    <a href="std_range_primitives.html" title="std.range.primitives"><span class="d_inlinecode donthyphenate notranslate">primitives</span></a>
  113   </li></ul></li><li>  <a href="std_regex.html" title="std.regex"><span class="d_inlinecode donthyphenate notranslate">regex</span></a></li><li>  <a href="std_signals.html" title="std.signals"><span class="d_inlinecode donthyphenate notranslate">signals</span></a></li><li>  <a href="std_socket.html" title="std.socket"><span class="d_inlinecode donthyphenate notranslate">socket</span></a></li><li>  <a href="std_stdint.html" title="std.stdint"><span class="d_inlinecode donthyphenate notranslate">stdint</span></a></li><li>  <a href="std_stdio.html" title="std.stdio"><span class="d_inlinecode donthyphenate notranslate">stdio</span></a></li><li>  <a href="std_string.html" title="std.string"><span class="d_inlinecode donthyphenate notranslate">string</span></a></li><li>  <a href="std_system.html" title="std.system"><span class="d_inlinecode donthyphenate notranslate">system</span></a></li><li>  <a href="std_traits.html" title="std.traits"><span class="d_inlinecode donthyphenate notranslate">traits</span></a></li><li>  <a href="std_typecons.html" title="std.typecons"><span class="d_inlinecode donthyphenate notranslate">typecons</span></a></li><li>  <a href="std_uni.html" title="std.uni"><span class="d_inlinecode donthyphenate notranslate">uni</span></a></li><li>  <a href="std_uri.html" title="std.uri"><span class="d_inlinecode donthyphenate notranslate">uri</span></a></li><li>  <a href="std_utf.html" title="std.utf"><span class="d_inlinecode donthyphenate notranslate">utf</span></a></li><li>  <a href="std_uuid.html" title="std.uuid"><span class="d_inlinecode donthyphenate notranslate">uuid</span></a></li><li>  <a href="std_variant.html" title="std.variant"><span class="d_inlinecode donthyphenate notranslate">variant</span></a></li><li>  <h7><span class="d_inlinecode donthyphenate notranslate">windows</span></h7><ul><li>    <a href="std_windows_charset.html" title="std.windows.charset"><span class="d_inlinecode donthyphenate notranslate">charset</span></a></li><li>    <a href="std_windows_syserror.html" title="std.windows.syserror"><span class="d_inlinecode donthyphenate notranslate">syserror</span></a>
  114   </li></ul></li><li>  <a href="std_xml.html" title="std.xml"><span class="d_inlinecode donthyphenate notranslate">xml</span></a></li><li>  <a href="std_zip.html" title="std.zip"><span class="d_inlinecode donthyphenate notranslate">zip</span></a></li><li>  <a href="std_zlib.html" title="std.zlib"><span class="d_inlinecode donthyphenate notranslate">zlib</span></a>
  115 </li></ul>
  116 </li>
  117 
  118 <li class='expand-container modlist-submenu-etc'><a class='expand-toggle' href='#'><span><em class="tt">etc</em></span></a>
  119 <ul><li>  <h7><span class="d_inlinecode donthyphenate notranslate">c</span></h7><ul><li>    <a href="etc_c_curl.html" title="etc.c.curl"><span class="d_inlinecode donthyphenate notranslate">curl</span></a></li><li>    <h7><span class="d_inlinecode donthyphenate notranslate">odbc</span></h7><ul><li>      <a href="etc_c_odbc_sql.html" title="etc.c.odbc.sql"><span class="d_inlinecode donthyphenate notranslate">sql</span></a></li><li>      <a href="etc_c_odbc_sqlext.html" title="etc.c.odbc.sqlext"><span class="d_inlinecode donthyphenate notranslate">sqlext</span></a></li><li>      <a href="etc_c_odbc_sqltypes.html" title="etc.c.odbc.sqltypes"><span class="d_inlinecode donthyphenate notranslate">sqltypes</span></a></li><li>      <a href="etc_c_odbc_sqlucode.html" title="etc.c.odbc.sqlucode"><span class="d_inlinecode donthyphenate notranslate">sqlucode</span></a>
  120     </li></ul></li><li>    <a href="etc_c_sqlite3.html" title="etc.c.sqlite3"><span class="d_inlinecode donthyphenate notranslate">sqlite3</span></a></li><li>    <a href="etc_c_zlib.html" title="etc.c.zlib"><span class="d_inlinecode donthyphenate notranslate">zlib</span></a>
  121   </li></ul>
  122 </li></ul>
  123 </li>
  124 
  125 <li class='expand-container modlist-submenu-core'><a class='expand-toggle' href='#'><span><em class="tt">core</em></span></a>
  126 <ul><li>  <a href="core_atomic.html" title="core.atomic"><span class="d_inlinecode donthyphenate notranslate">atomic</span></a></li><li>  <a href="core_attribute.html" title="core.attribute"><span class="d_inlinecode donthyphenate notranslate">attribute</span></a></li><li>  <a href="core_bitop.html" title="core.bitop"><span class="d_inlinecode donthyphenate notranslate">bitop</span></a></li><li>  <a href="core_checkedint.html" title="core.checkedint"><span class="d_inlinecode donthyphenate notranslate">checkedint</span></a></li><li>  <a href="core_cpuid.html" title="core.cpuid"><span class="d_inlinecode donthyphenate notranslate">cpuid</span></a></li><li>  <a href="core_demangle.html" title="core.demangle"><span class="d_inlinecode donthyphenate notranslate">demangle</span></a></li><li>  <a href="core_exception.html" title="core.exception"><span class="d_inlinecode donthyphenate notranslate">exception</span></a></li><li>  <h7><span class="d_inlinecode donthyphenate notranslate">gc</span></h7><ul><li>    <a href="core_gc_config.html" title="core.gc.config"><span class="d_inlinecode donthyphenate notranslate">config</span></a></li><li>    <a href="core_gc_gcinterface.html" title="core.gc.gcinterface"><span class="d_inlinecode donthyphenate notranslate">gcinterface</span></a></li><li>    <a href="core_gc_registry.html" title="core.gc.registry"><span class="d_inlinecode donthyphenate notranslate">registry</span></a>
  127   </li></ul></li><li>  <a href="core_lifetime.html" title="core.lifetime"><span class="d_inlinecode donthyphenate notranslate">lifetime</span></a></li><li>  <a href="core_math.html" title="core.math"><span class="d_inlinecode donthyphenate notranslate">math</span></a></li><li>  <a href="core_memory.html" title="core.memory"><span class="d_inlinecode donthyphenate notranslate">memory</span></a></li><li>  <a href="core_runtime.html" title="core.runtime"><span class="d_inlinecode donthyphenate notranslate">runtime</span></a></li><li>  <a href="core_simd.html" title="core.simd"><span class="d_inlinecode donthyphenate notranslate">simd</span></a></li><li>  <h7><span class="d_inlinecode donthyphenate notranslate">stdc</span></h7><ul><li>    <a href="core_stdc_assert_.html" title="core.stdc.assert_"><span class="d_inlinecode donthyphenate notranslate">assert_</span></a></li><li>    <a href="core_stdc_complex.html" title="core.stdc.complex"><span class="d_inlinecode donthyphenate notranslate">complex</span></a></li><li>    <a href="core_stdc_ctype.html" title="core.stdc.ctype"><span class="d_inlinecode donthyphenate notranslate">ctype</span></a></li><li>    <a href="core_stdc_errno.html" title="core.stdc.errno"><span class="d_inlinecode donthyphenate notranslate">errno</span></a></li><li>    <a href="core_stdc_fenv.html" title="core.stdc.fenv"><span class="d_inlinecode donthyphenate notranslate">fenv</span></a></li><li>    <a href="core_stdc_float_.html" title="core.stdc.float_"><span class="d_inlinecode donthyphenate notranslate">float_</span></a></li><li>    <a href="core_stdc_inttypes.html" title="core.stdc.inttypes"><span class="d_inlinecode donthyphenate notranslate">inttypes</span></a></li><li>    <a href="core_stdc_limits.html" title="core.stdc.limits"><span class="d_inlinecode donthyphenate notranslate">limits</span></a></li><li>    <a href="core_stdc_locale.html" title="core.stdc.locale"><span class="d_inlinecode donthyphenate notranslate">locale</span></a></li><li>    <a href="core_stdc_math.html" title="core.stdc.math"><span class="d_inlinecode donthyphenate notranslate">math</span></a></li><li>    <a href="core_stdc_signal.html" title="core.stdc.signal"><span class="d_inlinecode donthyphenate notranslate">signal</span></a></li><li>    <a href="core_stdc_stdarg.html" title="core.stdc.stdarg"><span class="d_inlinecode donthyphenate notranslate">stdarg</span></a></li><li>    <a href="core_stdc_stddef.html" title="core.stdc.stddef"><span class="d_inlinecode donthyphenate notranslate">stddef</span></a></li><li>    <a href="core_stdc_stdint.html" title="core.stdc.stdint"><span class="d_inlinecode donthyphenate notranslate">stdint</span></a></li><li>    <a href="core_stdc_stdio.html" title="core.stdc.stdio"><span class="d_inlinecode donthyphenate notranslate">stdio</span></a></li><li>    <a href="core_stdc_stdlib.html" title="core.stdc.stdlib"><span class="d_inlinecode donthyphenate notranslate">stdlib</span></a></li><li>    <a href="core_stdc_string.html" title="core.stdc.string"><span class="d_inlinecode donthyphenate notranslate">string</span></a></li><li>    <a href="core_stdc_tgmath.html" title="core.stdc.tgmath"><span class="d_inlinecode donthyphenate notranslate">tgmath</span></a></li><li>    <a href="core_stdc_time.html" title="core.stdc.time"><span class="d_inlinecode donthyphenate notranslate">time</span></a></li><li>    <a href="core_stdc_wchar_.html" title="core.stdc.wchar_"><span class="d_inlinecode donthyphenate notranslate">wchar_</span></a></li><li>    <a href="core_stdc_wctype.html" title="core.stdc.wctype"><span class="d_inlinecode donthyphenate notranslate">wctype</span></a>
  128   </li></ul></li><li>  <h7><span class="d_inlinecode donthyphenate notranslate">stdcpp</span></h7><ul><li>    <a href="core_stdcpp_allocator.html" title="core.stdcpp.allocator"><span class="d_inlinecode donthyphenate notranslate">allocator</span></a></li><li>    <a href="core_stdcpp_array.html" title="core.stdcpp.array"><span class="d_inlinecode donthyphenate notranslate">array</span></a></li><li>    <a href="core_stdcpp_exception.html" title="core.stdcpp.exception"><span class="d_inlinecode donthyphenate notranslate">exception</span></a></li><li>    <a href="core_stdcpp_memory.html" title="core.stdcpp.memory"><span class="d_inlinecode donthyphenate notranslate">memory</span></a></li><li>    <a href="core_stdcpp_new_.html" title="core.stdcpp.new_"><span class="d_inlinecode donthyphenate notranslate">new_</span></a></li><li>    <a href="core_stdcpp_string.html" title="core.stdcpp.string"><span class="d_inlinecode donthyphenate notranslate">string</span></a></li><li>    <a href="core_stdcpp_string_view.html" title="core.stdcpp.string_view"><span class="d_inlinecode donthyphenate notranslate">string_view</span></a></li><li>    <a href="core_stdcpp_type_traits.html" title="core.stdcpp.type_traits"><span class="d_inlinecode donthyphenate notranslate">type_traits</span></a></li><li>    <a href="core_stdcpp_typeinfo.html" title="core.stdcpp.typeinfo"><span class="d_inlinecode donthyphenate notranslate">typeinfo</span></a></li><li>    <a href="core_stdcpp_utility.html" title="core.stdcpp.utility"><span class="d_inlinecode donthyphenate notranslate">utility</span></a></li><li>    <a href="core_stdcpp_vector.html" title="core.stdcpp.vector"><span class="d_inlinecode donthyphenate notranslate">vector</span></a></li><li>    <a href="core_stdcpp_xutility.html" title="core.stdcpp.xutility"><span class="d_inlinecode donthyphenate notranslate">xutility</span></a>
  129   </li></ul></li><li>  <h7><span class="d_inlinecode donthyphenate notranslate">sync</span></h7><ul><li>    <a href="core_sync_barrier.html" title="core.sync.barrier"><span class="d_inlinecode donthyphenate notranslate">barrier</span></a></li><li>    <a href="core_sync_condition.html" title="core.sync.condition"><span class="d_inlinecode donthyphenate notranslate">condition</span></a></li><li>    <a href="core_sync_config.html" title="core.sync.config"><span class="d_inlinecode donthyphenate notranslate">config</span></a></li><li>    <a href="core_sync_event.html" title="core.sync.event"><span class="d_inlinecode donthyphenate notranslate">event</span></a></li><li>    <a href="core_sync_exception.html" title="core.sync.exception"><span class="d_inlinecode donthyphenate notranslate">exception</span></a></li><li>    <a href="core_sync_mutex.html" title="core.sync.mutex"><span class="d_inlinecode donthyphenate notranslate">mutex</span></a></li><li>    <a href="core_sync_rwmutex.html" title="core.sync.rwmutex"><span class="d_inlinecode donthyphenate notranslate">rwmutex</span></a></li><li>    <a href="core_sync_semaphore.html" title="core.sync.semaphore"><span class="d_inlinecode donthyphenate notranslate">semaphore</span></a>
  130   </li></ul></li><li>  <a href="core_thread.html" title="core.thread"><span class="d_inlinecode donthyphenate notranslate">thread</span></a><ul><li>    <a href="core_thread_context.html" title="core.thread.context"><span class="d_inlinecode donthyphenate notranslate">context</span></a></li><li>    <a href="core_thread_fiber.html" title="core.thread.fiber"><span class="d_inlinecode donthyphenate notranslate">fiber</span></a></li><li>    <a href="core_thread_osthread.html" title="core.thread.osthread"><span class="d_inlinecode donthyphenate notranslate">osthread</span></a></li><li>    <a href="core_thread_threadbase.html" title="core.thread.threadbase"><span class="d_inlinecode donthyphenate notranslate">threadbase</span></a></li><li>    <a href="core_thread_threadgroup.html" title="core.thread.threadgroup"><span class="d_inlinecode donthyphenate notranslate">threadgroup</span></a></li><li>    <a href="core_thread_types.html" title="core.thread.types"><span class="d_inlinecode donthyphenate notranslate">types</span></a>
  131   </li></ul></li><li>  <a href="core_time.html" title="core.time"><span class="d_inlinecode donthyphenate notranslate">time</span></a></li><li>  <a href="core_vararg.html" title="core.vararg"><span class="d_inlinecode donthyphenate notranslate">vararg</span></a></li><li>  <a href="core_volatile.html" title="core.volatile"><span class="d_inlinecode donthyphenate notranslate">volatile</span></a>
  132 </li></ul>
  133 </li>
  134 <div class="modlist-internal-separator">Internal API</div>
  135 
  136 <li class='expand-container modlist-submenu-core'><a class='expand-toggle' href='#'><span><em class="tt">core</em></span></a>
  137 <ul><li>  <h7><span class="d_inlinecode donthyphenate notranslate">internal</span></h7><ul><li>    <h7><span class="d_inlinecode donthyphenate notranslate">array</span></h7><ul><li>      <a href="core_internal_array_appending.html" title="core.internal.array.appending"><span class="d_inlinecode donthyphenate notranslate">appending</span></a></li><li>      <a href="core_internal_array_capacity.html" title="core.internal.array.capacity"><span class="d_inlinecode donthyphenate notranslate">capacity</span></a></li><li>      <a href="core_internal_array_casting.html" title="core.internal.array.casting"><span class="d_inlinecode donthyphenate notranslate">casting</span></a></li><li>      <a href="core_internal_array_comparison.html" title="core.internal.array.comparison"><span class="d_inlinecode donthyphenate notranslate">comparison</span></a></li><li>      <a href="core_internal_array_concatenation.html" title="core.internal.array.concatenation"><span class="d_inlinecode donthyphenate notranslate">concatenation</span></a></li><li>      <a href="core_internal_array_construction.html" title="core.internal.array.construction"><span class="d_inlinecode donthyphenate notranslate">construction</span></a></li><li>      <a href="core_internal_array_equality.html" title="core.internal.array.equality"><span class="d_inlinecode donthyphenate notranslate">equality</span></a></li><li>      <a href="core_internal_array_operations.html" title="core.internal.array.operations"><span class="d_inlinecode donthyphenate notranslate">operations</span></a></li><li>      <a href="core_internal_array_utils.html" title="core.internal.array.utils"><span class="d_inlinecode donthyphenate notranslate">utils</span></a>
  138     </li></ul></li><li>    <h7><span class="d_inlinecode donthyphenate notranslate">util</span></h7><ul><li>      <a href="core_internal_util_array.html" title="core.internal.util.array"><span class="d_inlinecode donthyphenate notranslate">array</span></a>
  139     </li></ul>
  140   </li></ul>
  141 </li></ul>
  142 </li>
  143 
  144 <li class='expand-container modlist-submenu-dmd'><a class='expand-toggle' href='#'><span><em class="tt">dmd</em></span></a>
  145 <ul><li>  <a href="dmd_access.html" title="dmd.access"><span class="d_inlinecode donthyphenate notranslate">access</span></a></li><li>  <a href="dmd_aggregate.html" title="dmd.aggregate"><span class="d_inlinecode donthyphenate notranslate">aggregate</span></a></li><li>  <a href="dmd_aliasthis.html" title="dmd.aliasthis"><span class="d_inlinecode donthyphenate notranslate">aliasthis</span></a></li><li>  <a href="dmd_apply.html" title="dmd.apply"><span class="d_inlinecode donthyphenate notranslate">apply</span></a></li><li>  <a href="dmd_argtypes_aarch64.html" title="dmd.argtypes_aarch64"><span class="d_inlinecode donthyphenate notranslate">argtypes_aarch64</span></a></li><li>  <a href="dmd_argtypes_sysv_x64.html" title="dmd.argtypes_sysv_x64"><span class="d_inlinecode donthyphenate notranslate">argtypes_sysv_x64</span></a></li><li>  <a href="dmd_argtypes_x86.html" title="dmd.argtypes_x86"><span class="d_inlinecode donthyphenate notranslate">argtypes_x86</span></a></li><li>  <a href="dmd_arrayop.html" title="dmd.arrayop"><span class="d_inlinecode donthyphenate notranslate">arrayop</span></a></li><li>  <a href="dmd_arraytypes.html" title="dmd.arraytypes"><span class="d_inlinecode donthyphenate notranslate">arraytypes</span></a></li><li>  <a href="dmd_ast_node.html" title="dmd.ast_node"><span class="d_inlinecode donthyphenate notranslate">ast_node</span></a></li><li>  <a href="dmd_astbase.html" title="dmd.astbase"><span class="d_inlinecode donthyphenate notranslate">astbase</span></a></li><li>  <a href="dmd_astcodegen.html" title="dmd.astcodegen"><span class="d_inlinecode donthyphenate notranslate">astcodegen</span></a></li><li>  <a href="dmd_asttypename.html" title="dmd.asttypename"><span class="d_inlinecode donthyphenate notranslate">asttypename</span></a></li><li>  <a href="dmd_attrib.html" title="dmd.attrib"><span class="d_inlinecode donthyphenate notranslate">attrib</span></a></li><li>  <h7><span class="d_inlinecode donthyphenate notranslate">backend</span></h7><ul><li>    <a href="dmd_backend_aarray.html" title="dmd.backend.aarray"><span class="d_inlinecode donthyphenate notranslate">aarray</span></a></li><li>    <a href="dmd_backend_backconfig.html" title="dmd.backend.backconfig"><span class="d_inlinecode donthyphenate notranslate">backconfig</span></a></li><li>    <a href="dmd_backend_backend.html" title="dmd.backend.backend"><span class="d_inlinecode donthyphenate notranslate">backend</span></a></li><li>    <a href="dmd_backend_barray.html" title="dmd.backend.barray"><span class="d_inlinecode donthyphenate notranslate">barray</span></a></li><li>    <a href="dmd_backend_bcomplex.html" title="dmd.backend.bcomplex"><span class="d_inlinecode donthyphenate notranslate">bcomplex</span></a></li><li>    <a href="dmd_backend_blockopt.html" title="dmd.backend.blockopt"><span class="d_inlinecode donthyphenate notranslate">blockopt</span></a></li><li>    <a href="dmd_backend_cc.html" title="dmd.backend.cc"><span class="d_inlinecode donthyphenate notranslate">cc</span></a></li><li>    <a href="dmd_backend_cdef.html" title="dmd.backend.cdef"><span class="d_inlinecode donthyphenate notranslate">cdef</span></a></li><li>    <a href="dmd_backend_cg.html" title="dmd.backend.cg"><span class="d_inlinecode donthyphenate notranslate">cg</span></a></li><li>    <a href="dmd_backend_cg87.html" title="dmd.backend.cg87"><span class="d_inlinecode donthyphenate notranslate">cg87</span></a></li><li>    <a href="dmd_backend_cgcod.html" title="dmd.backend.cgcod"><span class="d_inlinecode donthyphenate notranslate">cgcod</span></a></li><li>    <a href="dmd_backend_cgcs.html" title="dmd.backend.cgcs"><span class="d_inlinecode donthyphenate notranslate">cgcs</span></a></li><li>    <a href="dmd_backend_cgcse.html" title="dmd.backend.cgcse"><span class="d_inlinecode donthyphenate notranslate">cgcse</span></a></li><li>    <a href="dmd_backend_cgcv.html" title="dmd.backend.cgcv"><span class="d_inlinecode donthyphenate notranslate">cgcv</span></a></li><li>    <a href="dmd_backend_cgelem.html" title="dmd.backend.cgelem"><span class="d_inlinecode donthyphenate notranslate">cgelem</span></a></li><li>    <a href="dmd_backend_cgen.html" title="dmd.backend.cgen"><span class="d_inlinecode donthyphenate notranslate">cgen</span></a></li><li>    <a href="dmd_backend_cgobj.html" title="dmd.backend.cgobj"><span class="d_inlinecode donthyphenate notranslate">cgobj</span></a></li><li>    <a href="dmd_backend_cgreg.html" title="dmd.backend.cgreg"><span class="d_inlinecode donthyphenate notranslate">cgreg</span></a></li><li>    <a href="dmd_backend_cgsched.html" title="dmd.backend.cgsched"><span class="d_inlinecode donthyphenate notranslate">cgsched</span></a></li><li>    <a href="dmd_backend_cgxmm.html" title="dmd.backend.cgxmm"><span class="d_inlinecode donthyphenate notranslate">cgxmm</span></a></li><li>    <a href="dmd_backend_cod1.html" title="dmd.backend.cod1"><span class="d_inlinecode donthyphenate notranslate">cod1</span></a></li><li>    <a href="dmd_backend_cod2.html" title="dmd.backend.cod2"><span class="d_inlinecode donthyphenate notranslate">cod2</span></a></li><li>    <a href="dmd_backend_cod3.html" title="dmd.backend.cod3"><span class="d_inlinecode donthyphenate notranslate">cod3</span></a></li><li>    <a href="dmd_backend_cod4.html" title="dmd.backend.cod4"><span class="d_inlinecode donthyphenate notranslate">cod4</span></a></li><li>    <a href="dmd_backend_cod5.html" title="dmd.backend.cod5"><span class="d_inlinecode donthyphenate notranslate">cod5</span></a></li><li>    <a href="dmd_backend_code.html" title="dmd.backend.code"><span class="d_inlinecode donthyphenate notranslate">code</span></a></li><li>    <a href="dmd_backend_code_x86.html" title="dmd.backend.code_x86"><span class="d_inlinecode donthyphenate notranslate">code_x86</span></a></li><li>    <a href="dmd_backend_codebuilder.html" title="dmd.backend.codebuilder"><span class="d_inlinecode donthyphenate notranslate">codebuilder</span></a></li><li>    <a href="dmd_backend_compress.html" title="dmd.backend.compress"><span class="d_inlinecode donthyphenate notranslate">compress</span></a></li><li>    <a href="dmd_backend_cv4.html" title="dmd.backend.cv4"><span class="d_inlinecode donthyphenate notranslate">cv4</span></a></li><li>    <a href="dmd_backend_cv8.html" title="dmd.backend.cv8"><span class="d_inlinecode donthyphenate notranslate">cv8</span></a></li><li>    <a href="dmd_backend_dcgcv.html" title="dmd.backend.dcgcv"><span class="d_inlinecode donthyphenate notranslate">dcgcv</span></a></li><li>    <a href="dmd_backend_dcode.html" title="dmd.backend.dcode"><span class="d_inlinecode donthyphenate notranslate">dcode</span></a></li><li>    <a href="dmd_backend_debugprint.html" title="dmd.backend.debugprint"><span class="d_inlinecode donthyphenate notranslate">debugprint</span></a></li><li>    <a href="dmd_backend_divcoeff.html" title="dmd.backend.divcoeff"><span class="d_inlinecode donthyphenate notranslate">divcoeff</span></a></li><li>    <a href="dmd_backend_dlist.html" title="dmd.backend.dlist"><span class="d_inlinecode donthyphenate notranslate">dlist</span></a></li><li>    <a href="dmd_backend_drtlsym.html" title="dmd.backend.drtlsym"><span class="d_inlinecode donthyphenate notranslate">drtlsym</span></a></li><li>    <a href="dmd_backend_dt.html" title="dmd.backend.dt"><span class="d_inlinecode donthyphenate notranslate">dt</span></a></li><li>    <a href="dmd_backend_dtype.html" title="dmd.backend.dtype"><span class="d_inlinecode donthyphenate notranslate">dtype</span></a></li><li>    <a href="dmd_backend_dvarstats.html" title="dmd.backend.dvarstats"><span class="d_inlinecode donthyphenate notranslate">dvarstats</span></a></li><li>    <a href="dmd_backend_dvec.html" title="dmd.backend.dvec"><span class="d_inlinecode donthyphenate notranslate">dvec</span></a></li><li>    <a href="dmd_backend_dwarf.html" title="dmd.backend.dwarf"><span class="d_inlinecode donthyphenate notranslate">dwarf</span></a></li><li>    <a href="dmd_backend_dwarf2.html" title="dmd.backend.dwarf2"><span class="d_inlinecode donthyphenate notranslate">dwarf2</span></a></li><li>    <a href="dmd_backend_dwarfdbginf.html" title="dmd.backend.dwarfdbginf"><span class="d_inlinecode donthyphenate notranslate">dwarfdbginf</span></a></li><li>    <a href="dmd_backend_dwarfeh.html" title="dmd.backend.dwarfeh"><span class="d_inlinecode donthyphenate notranslate">dwarfeh</span></a></li><li>    <a href="dmd_backend_ee.html" title="dmd.backend.ee"><span class="d_inlinecode donthyphenate notranslate">ee</span></a></li><li>    <a href="dmd_backend_el.html" title="dmd.backend.el"><span class="d_inlinecode donthyphenate notranslate">el</span></a></li><li>    <a href="dmd_backend_elem.html" title="dmd.backend.elem"><span class="d_inlinecode donthyphenate notranslate">elem</span></a></li><li>    <a href="dmd_backend_elfobj.html" title="dmd.backend.elfobj"><span class="d_inlinecode donthyphenate notranslate">elfobj</span></a></li><li>    <a href="dmd_backend_elpicpie.html" title="dmd.backend.elpicpie"><span class="d_inlinecode donthyphenate notranslate">elpicpie</span></a></li><li>    <a href="dmd_backend_evalu8.html" title="dmd.backend.evalu8"><span class="d_inlinecode donthyphenate notranslate">evalu8</span></a></li><li>    <a href="dmd_backend_exh.html" title="dmd.backend.exh"><span class="d_inlinecode donthyphenate notranslate">exh</span></a></li><li>    <a href="dmd_backend_filespec.html" title="dmd.backend.filespec"><span class="d_inlinecode donthyphenate notranslate">filespec</span></a></li><li>    <a href="dmd_backend_fp.html" title="dmd.backend.fp"><span class="d_inlinecode donthyphenate notranslate">fp</span></a></li><li>    <a href="dmd_backend_gdag.html" title="dmd.backend.gdag"><span class="d_inlinecode donthyphenate notranslate">gdag</span></a></li><li>    <a href="dmd_backend_gflow.html" title="dmd.backend.gflow"><span class="d_inlinecode donthyphenate notranslate">gflow</span></a></li><li>    <a href="dmd_backend_global.html" title="dmd.backend.global"><span class="d_inlinecode donthyphenate notranslate">global</span></a></li><li>    <a href="dmd_backend_glocal.html" title="dmd.backend.glocal"><span class="d_inlinecode donthyphenate notranslate">glocal</span></a></li><li>    <a href="dmd_backend_gloop.html" title="dmd.backend.gloop"><span class="d_inlinecode donthyphenate notranslate">gloop</span></a></li><li>    <a href="dmd_backend_go.html" title="dmd.backend.go"><span class="d_inlinecode donthyphenate notranslate">go</span></a></li><li>    <a href="dmd_backend_goh.html" title="dmd.backend.goh"><span class="d_inlinecode donthyphenate notranslate">goh</span></a></li><li>    <a href="dmd_backend_gother.html" title="dmd.backend.gother"><span class="d_inlinecode donthyphenate notranslate">gother</span></a></li><li>    <a href="dmd_backend_gsroa.html" title="dmd.backend.gsroa"><span class="d_inlinecode donthyphenate notranslate">gsroa</span></a></li><li>    <a href="dmd_backend_iasm.html" title="dmd.backend.iasm"><span class="d_inlinecode donthyphenate notranslate">iasm</span></a></li><li>    <a href="dmd_backend_mach.html" title="dmd.backend.mach"><span class="d_inlinecode donthyphenate notranslate">mach</span></a></li><li>    <a href="dmd_backend_machobj.html" title="dmd.backend.machobj"><span class="d_inlinecode donthyphenate notranslate">machobj</span></a></li><li>    <a href="dmd_backend_md5.html" title="dmd.backend.md5"><span class="d_inlinecode donthyphenate notranslate">md5</span></a></li><li>    <a href="dmd_backend_melf.html" title="dmd.backend.melf"><span class="d_inlinecode donthyphenate notranslate">melf</span></a></li><li>    <a href="dmd_backend_mem.html" title="dmd.backend.mem"><span class="d_inlinecode donthyphenate notranslate">mem</span></a></li><li>    <a href="dmd_backend_mscoff.html" title="dmd.backend.mscoff"><span class="d_inlinecode donthyphenate notranslate">mscoff</span></a></li><li>    <a href="dmd_backend_mscoffobj.html" title="dmd.backend.mscoffobj"><span class="d_inlinecode donthyphenate notranslate">mscoffobj</span></a></li><li>    <a href="dmd_backend_newman.html" title="dmd.backend.newman"><span class="d_inlinecode donthyphenate notranslate">newman</span></a></li><li>    <a href="dmd_backend_nteh.html" title="dmd.backend.nteh"><span class="d_inlinecode donthyphenate notranslate">nteh</span></a></li><li>    <a href="dmd_backend_obj.html" title="dmd.backend.obj"><span class="d_inlinecode donthyphenate notranslate">obj</span></a></li><li>    <a href="dmd_backend_oper.html" title="dmd.backend.oper"><span class="d_inlinecode donthyphenate notranslate">oper</span></a></li><li>    <a href="dmd_backend_os.html" title="dmd.backend.os"><span class="d_inlinecode donthyphenate notranslate">os</span></a></li><li>    <a href="dmd_backend_out.html" title="dmd.backend.out"><span class="d_inlinecode donthyphenate notranslate">out</span></a></li><li>    <a href="dmd_backend_outbuf.html" title="dmd.backend.outbuf"><span class="d_inlinecode donthyphenate notranslate">outbuf</span></a></li><li>    <a href="dmd_backend_pdata.html" title="dmd.backend.pdata"><span class="d_inlinecode donthyphenate notranslate">pdata</span></a></li><li>    <a href="dmd_backend_ph2.html" title="dmd.backend.ph2"><span class="d_inlinecode donthyphenate notranslate">ph2</span></a></li><li>    <a href="dmd_backend_ptrntab.html" title="dmd.backend.ptrntab"><span class="d_inlinecode donthyphenate notranslate">ptrntab</span></a></li><li>    <a href="dmd_backend_rtlsym.html" title="dmd.backend.rtlsym"><span class="d_inlinecode donthyphenate notranslate">rtlsym</span></a></li><li>    <a href="dmd_backend_symbol.html" title="dmd.backend.symbol"><span class="d_inlinecode donthyphenate notranslate">symbol</span></a></li><li>    <a href="dmd_backend_ty.html" title="dmd.backend.ty"><span class="d_inlinecode donthyphenate notranslate">ty</span></a></li><li>    <a href="dmd_backend_type.html" title="dmd.backend.type"><span class="d_inlinecode donthyphenate notranslate">type</span></a></li><li>    <a href="dmd_backend_util2.html" title="dmd.backend.util2"><span class="d_inlinecode donthyphenate notranslate">util2</span></a></li><li>    <a href="dmd_backend_var.html" title="dmd.backend.var"><span class="d_inlinecode donthyphenate notranslate">var</span></a></li><li>    <a href="dmd_backend_xmm.html" title="dmd.backend.xmm"><span class="d_inlinecode donthyphenate notranslate">xmm</span></a>
  146   </li></ul></li><li>  <a href="dmd_blockexit.html" title="dmd.blockexit"><span class="d_inlinecode donthyphenate notranslate">blockexit</span></a></li><li>  <a href="dmd_builtin.html" title="dmd.builtin"><span class="d_inlinecode donthyphenate notranslate">builtin</span></a></li><li>  <a href="dmd_canthrow.html" title="dmd.canthrow"><span class="d_inlinecode donthyphenate notranslate">canthrow</span></a></li><li>  <a href="dmd_chkformat.html" title="dmd.chkformat"><span class="d_inlinecode donthyphenate notranslate">chkformat</span></a></li><li>  <a href="dmd_cli.html" title="dmd.cli"><span class="d_inlinecode donthyphenate notranslate">cli</span></a></li><li>  <a href="dmd_clone.html" title="dmd.clone"><span class="d_inlinecode donthyphenate notranslate">clone</span></a></li><li>  <a href="dmd_compiler.html" title="dmd.compiler"><span class="d_inlinecode donthyphenate notranslate">compiler</span></a></li><li>  <a href="dmd_complex.html" title="dmd.complex"><span class="d_inlinecode donthyphenate notranslate">complex</span></a></li><li>  <a href="dmd_cond.html" title="dmd.cond"><span class="d_inlinecode donthyphenate notranslate">cond</span></a></li><li>  <a href="dmd_console.html" title="dmd.console"><span class="d_inlinecode donthyphenate notranslate">console</span></a></li><li>  <a href="dmd_constfold.html" title="dmd.constfold"><span class="d_inlinecode donthyphenate notranslate">constfold</span></a></li><li>  <a href="dmd_cppmangle.html" title="dmd.cppmangle"><span class="d_inlinecode donthyphenate notranslate">cppmangle</span></a></li><li>  <a href="dmd_cppmanglewin.html" title="dmd.cppmanglewin"><span class="d_inlinecode donthyphenate notranslate">cppmanglewin</span></a></li><li>  <a href="dmd_ctfeexpr.html" title="dmd.ctfeexpr"><span class="d_inlinecode donthyphenate notranslate">ctfeexpr</span></a></li><li>  <a href="dmd_ctorflow.html" title="dmd.ctorflow"><span class="d_inlinecode donthyphenate notranslate">ctorflow</span></a></li><li>  <a href="dmd_dcast.html" title="dmd.dcast"><span class="d_inlinecode donthyphenate notranslate">dcast</span></a></li><li>  <a href="dmd_dclass.html" title="dmd.dclass"><span class="d_inlinecode donthyphenate notranslate">dclass</span></a></li><li>  <a href="dmd_declaration.html" title="dmd.declaration"><span class="d_inlinecode donthyphenate notranslate">declaration</span></a></li><li>  <a href="dmd_delegatize.html" title="dmd.delegatize"><span class="d_inlinecode donthyphenate notranslate">delegatize</span></a></li><li>  <a href="dmd_denum.html" title="dmd.denum"><span class="d_inlinecode donthyphenate notranslate">denum</span></a></li><li>  <a href="dmd_dimport.html" title="dmd.dimport"><span class="d_inlinecode donthyphenate notranslate">dimport</span></a></li><li>  <a href="dmd_dinifile.html" title="dmd.dinifile"><span class="d_inlinecode donthyphenate notranslate">dinifile</span></a></li><li>  <a href="dmd_dinterpret.html" title="dmd.dinterpret"><span class="d_inlinecode donthyphenate notranslate">dinterpret</span></a></li><li>  <a href="dmd_dmacro.html" title="dmd.dmacro"><span class="d_inlinecode donthyphenate notranslate">dmacro</span></a></li><li>  <a href="dmd_dmangle.html" title="dmd.dmangle"><span class="d_inlinecode donthyphenate notranslate">dmangle</span></a></li><li>  <a href="dmd_dmodule.html" title="dmd.dmodule"><span class="d_inlinecode donthyphenate notranslate">dmodule</span></a></li><li>  <a href="dmd_dmsc.html" title="dmd.dmsc"><span class="d_inlinecode donthyphenate notranslate">dmsc</span></a></li><li>  <a href="dmd_doc.html" title="dmd.doc"><span class="d_inlinecode donthyphenate notranslate">doc</span></a></li><li>  <a href="dmd_dscope.html" title="dmd.dscope"><span class="d_inlinecode donthyphenate notranslate">dscope</span></a></li><li>  <a href="dmd_dstruct.html" title="dmd.dstruct"><span class="d_inlinecode donthyphenate notranslate">dstruct</span></a></li><li>  <a href="dmd_dsymbol.html" title="dmd.dsymbol"><span class="d_inlinecode donthyphenate notranslate">dsymbol</span></a></li><li>  <a href="dmd_dsymbolsem.html" title="dmd.dsymbolsem"><span class="d_inlinecode donthyphenate notranslate">dsymbolsem</span></a></li><li>  <a href="dmd_dtemplate.html" title="dmd.dtemplate"><span class="d_inlinecode donthyphenate notranslate">dtemplate</span></a></li><li>  <a href="dmd_dtoh.html" title="dmd.dtoh"><span class="d_inlinecode donthyphenate notranslate">dtoh</span></a></li><li>  <a href="dmd_dversion.html" title="dmd.dversion"><span class="d_inlinecode donthyphenate notranslate">dversion</span></a></li><li>  <a href="dmd_e2ir.html" title="dmd.e2ir"><span class="d_inlinecode donthyphenate notranslate">e2ir</span></a></li><li>  <a href="dmd_eh.html" title="dmd.eh"><span class="d_inlinecode donthyphenate notranslate">eh</span></a></li><li>  <a href="dmd_entity.html" title="dmd.entity"><span class="d_inlinecode donthyphenate notranslate">entity</span></a></li><li>  <a href="dmd_env.html" title="dmd.env"><span class="d_inlinecode donthyphenate notranslate">env</span></a></li><li>  <a href="dmd_errors.html" title="dmd.errors"><span class="d_inlinecode donthyphenate notranslate">errors</span></a></li><li>  <a href="dmd_escape.html" title="dmd.escape"><span class="d_inlinecode donthyphenate notranslate">escape</span></a></li><li>  <a href="dmd_expression.html" title="dmd.expression"><span class="d_inlinecode donthyphenate notranslate">expression</span></a></li><li>  <a href="dmd_expressionsem.html" title="dmd.expressionsem"><span class="d_inlinecode donthyphenate notranslate">expressionsem</span></a></li><li>  <a href="dmd_filecache.html" title="dmd.filecache"><span class="d_inlinecode donthyphenate notranslate">filecache</span></a></li><li>  <a href="dmd_foreachvar.html" title="dmd.foreachvar"><span class="d_inlinecode donthyphenate notranslate">foreachvar</span></a></li><li>  <a href="dmd_frontend.html" title="dmd.frontend"><span class="d_inlinecode donthyphenate notranslate">frontend</span></a></li><li>  <a href="dmd_func.html" title="dmd.func"><span class="d_inlinecode donthyphenate notranslate">func</span></a></li><li>  <a href="dmd_globals.html" title="dmd.globals"><span class="d_inlinecode donthyphenate notranslate">globals</span></a></li><li>  <a href="dmd_glue.html" title="dmd.glue"><span class="d_inlinecode donthyphenate notranslate">glue</span></a></li><li>  <a href="dmd_gluelayer.html" title="dmd.gluelayer"><span class="d_inlinecode donthyphenate notranslate">gluelayer</span></a></li><li>  <a href="dmd_hdrgen.html" title="dmd.hdrgen"><span class="d_inlinecode donthyphenate notranslate">hdrgen</span></a></li><li>  <a href="dmd_iasm.html" title="dmd.iasm"><span class="d_inlinecode donthyphenate notranslate">iasm</span></a></li><li>  <a href="dmd_iasmdmd.html" title="dmd.iasmdmd"><span class="d_inlinecode donthyphenate notranslate">iasmdmd</span></a></li><li>  <a href="dmd_iasmgcc.html" title="dmd.iasmgcc"><span class="d_inlinecode donthyphenate notranslate">iasmgcc</span></a></li><li>  <a href="dmd_id.html" title="dmd.id"><span class="d_inlinecode donthyphenate notranslate">id</span></a></li><li>  <a href="dmd_identifier.html" title="dmd.identifier"><span class="d_inlinecode donthyphenate notranslate">identifier</span></a></li><li>  <a href="dmd_impcnvtab.html" title="dmd.impcnvtab"><span class="d_inlinecode donthyphenate notranslate">impcnvtab</span></a></li><li>  <a href="dmd_imphint.html" title="dmd.imphint"><span class="d_inlinecode donthyphenate notranslate">imphint</span></a></li><li>  <a href="dmd_init.html" title="dmd.init"><span class="d_inlinecode donthyphenate notranslate">init</span></a></li><li>  <a href="dmd_initsem.html" title="dmd.initsem"><span class="d_inlinecode donthyphenate notranslate">initsem</span></a></li><li>  <a href="dmd_inline.html" title="dmd.inline"><span class="d_inlinecode donthyphenate notranslate">inline</span></a></li><li>  <a href="dmd_inlinecost.html" title="dmd.inlinecost"><span class="d_inlinecode donthyphenate notranslate">inlinecost</span></a></li><li>  <a href="dmd_intrange.html" title="dmd.intrange"><span class="d_inlinecode donthyphenate notranslate">intrange</span></a></li><li>  <a href="dmd_json.html" title="dmd.json"><span class="d_inlinecode donthyphenate notranslate">json</span></a></li><li>  <a href="dmd_lambdacomp.html" title="dmd.lambdacomp"><span class="d_inlinecode donthyphenate notranslate">lambdacomp</span></a></li><li>  <a href="dmd_lexer.html" title="dmd.lexer"><span class="d_inlinecode donthyphenate notranslate">lexer</span></a></li><li>  <a href="dmd_lib.html" title="dmd.lib"><span class="d_inlinecode donthyphenate notranslate">lib</span></a></li><li>  <a href="dmd_libelf.html" title="dmd.libelf"><span class="d_inlinecode donthyphenate notranslate">libelf</span></a></li><li>  <a href="dmd_libomf.html" title="dmd.libomf"><span class="d_inlinecode donthyphenate notranslate">libomf</span></a></li><li>  <a href="dmd_link.html" title="dmd.link"><span class="d_inlinecode donthyphenate notranslate">link</span></a></li><li>  <a href="dmd_mars.html" title="dmd.mars"><span class="d_inlinecode donthyphenate notranslate">mars</span></a></li><li>  <a href="dmd_mtype.html" title="dmd.mtype"><span class="d_inlinecode donthyphenate notranslate">mtype</span></a></li><li>  <a href="dmd_nogc.html" title="dmd.nogc"><span class="d_inlinecode donthyphenate notranslate">nogc</span></a></li><li>  <a href="dmd_nspace.html" title="dmd.nspace"><span class="d_inlinecode donthyphenate notranslate">nspace</span></a></li><li>  <a href="dmd_ob.html" title="dmd.ob"><span class="d_inlinecode donthyphenate notranslate">ob</span></a></li><li>  <a href="dmd_objc.html" title="dmd.objc"><span class="d_inlinecode donthyphenate notranslate">objc</span></a></li><li>  <a href="dmd_objc_glue.html" title="dmd.objc_glue"><span class="d_inlinecode donthyphenate notranslate">objc_glue</span></a></li><li>  <a href="dmd_opover.html" title="dmd.opover"><span class="d_inlinecode donthyphenate notranslate">opover</span></a></li><li>  <a href="dmd_optimize.html" title="dmd.optimize"><span class="d_inlinecode donthyphenate notranslate">optimize</span></a></li><li>  <a href="dmd_parse.html" title="dmd.parse"><span class="d_inlinecode donthyphenate notranslate">parse</span></a></li><li>  <a href="dmd_parsetimevisitor.html" title="dmd.parsetimevisitor"><span class="d_inlinecode donthyphenate notranslate">parsetimevisitor</span></a></li><li>  <a href="dmd_permissivevisitor.html" title="dmd.permissivevisitor"><span class="d_inlinecode donthyphenate notranslate">permissivevisitor</span></a></li><li>  <a href="dmd_printast.html" title="dmd.printast"><span class="d_inlinecode donthyphenate notranslate">printast</span></a></li><li>  <h7><span class="d_inlinecode donthyphenate notranslate">root</span></h7><ul><li>    <a href="dmd_root_aav.html" title="dmd.root.aav"><span class="d_inlinecode donthyphenate notranslate">aav</span></a></li><li>    <a href="dmd_root_array.html" title="dmd.root.array"><span class="d_inlinecode donthyphenate notranslate">array</span></a></li><li>    <a href="dmd_root_bitarray.html" title="dmd.root.bitarray"><span class="d_inlinecode donthyphenate notranslate">bitarray</span></a></li><li>    <a href="dmd_root_ctfloat.html" title="dmd.root.ctfloat"><span class="d_inlinecode donthyphenate notranslate">ctfloat</span></a></li><li>    <a href="dmd_root_file.html" title="dmd.root.file"><span class="d_inlinecode donthyphenate notranslate">file</span></a></li><li>    <a href="dmd_root_filename.html" title="dmd.root.filename"><span class="d_inlinecode donthyphenate notranslate">filename</span></a></li><li>    <a href="dmd_root_hash.html" title="dmd.root.hash"><span class="d_inlinecode donthyphenate notranslate">hash</span></a></li><li>    <a href="dmd_root_longdouble.html" title="dmd.root.longdouble"><span class="d_inlinecode donthyphenate notranslate">longdouble</span></a></li><li>    <a href="dmd_root_man.html" title="dmd.root.man"><span class="d_inlinecode donthyphenate notranslate">man</span></a></li><li>    <a href="dmd_root_outbuffer.html" title="dmd.root.outbuffer"><span class="d_inlinecode donthyphenate notranslate">outbuffer</span></a></li><li>    <a href="dmd_root_port.html" title="dmd.root.port"><span class="d_inlinecode donthyphenate notranslate">port</span></a></li><li>    <a href="dmd_root_region.html" title="dmd.root.region"><span class="d_inlinecode donthyphenate notranslate">region</span></a></li><li>    <a href="dmd_root_response.html" title="dmd.root.response"><span class="d_inlinecode donthyphenate notranslate">response</span></a></li><li>    <a href="dmd_root_rmem.html" title="dmd.root.rmem"><span class="d_inlinecode donthyphenate notranslate">rmem</span></a></li><li>    <a href="dmd_root_rootobject.html" title="dmd.root.rootobject"><span class="d_inlinecode donthyphenate notranslate">rootobject</span></a></li><li>    <a href="dmd_root_speller.html" title="dmd.root.speller"><span class="d_inlinecode donthyphenate notranslate">speller</span></a></li><li>    <a href="dmd_root_string.html" title="dmd.root.string"><span class="d_inlinecode donthyphenate notranslate">string</span></a></li><li>    <a href="dmd_root_stringtable.html" title="dmd.root.stringtable"><span class="d_inlinecode donthyphenate notranslate">stringtable</span></a></li><li>    <a href="dmd_root_strtold.html" title="dmd.root.strtold"><span class="d_inlinecode donthyphenate notranslate">strtold</span></a>
  147   </li></ul></li><li>  <a href="dmd_s2ir.html" title="dmd.s2ir"><span class="d_inlinecode donthyphenate notranslate">s2ir</span></a></li><li>  <a href="dmd_safe.html" title="dmd.safe"><span class="d_inlinecode donthyphenate notranslate">safe</span></a></li><li>  <a href="dmd_sapply.html" title="dmd.sapply"><span class="d_inlinecode donthyphenate notranslate">sapply</span></a></li><li>  <a href="dmd_scanelf.html" title="dmd.scanelf"><span class="d_inlinecode donthyphenate notranslate">scanelf</span></a></li><li>  <a href="dmd_scanomf.html" title="dmd.scanomf"><span class="d_inlinecode donthyphenate notranslate">scanomf</span></a></li><li>  <a href="dmd_semantic2.html" title="dmd.semantic2"><span class="d_inlinecode donthyphenate notranslate">semantic2</span></a></li><li>  <a href="dmd_semantic3.html" title="dmd.semantic3"><span class="d_inlinecode donthyphenate notranslate">semantic3</span></a></li><li>  <a href="dmd_sideeffect.html" title="dmd.sideeffect"><span class="d_inlinecode donthyphenate notranslate">sideeffect</span></a></li><li>  <a href="dmd_statement.html" title="dmd.statement"><span class="d_inlinecode donthyphenate notranslate">statement</span></a></li><li>  <a href="dmd_statement_rewrite_walker.html" title="dmd.statement_rewrite_walker"><span class="d_inlinecode donthyphenate notranslate">statement_rewrite_walker</span></a></li><li>  <a href="dmd_statementsem.html" title="dmd.statementsem"><span class="d_inlinecode donthyphenate notranslate">statementsem</span></a></li><li>  <a href="dmd_staticassert.html" title="dmd.staticassert"><span class="d_inlinecode donthyphenate notranslate">staticassert</span></a></li><li>  <a href="dmd_staticcond.html" title="dmd.staticcond"><span class="d_inlinecode donthyphenate notranslate">staticcond</span></a></li><li>  <a href="dmd_stmtstate.html" title="dmd.stmtstate"><span class="d_inlinecode donthyphenate notranslate">stmtstate</span></a></li><li>  <a href="dmd_strictvisitor.html" title="dmd.strictvisitor"><span class="d_inlinecode donthyphenate notranslate">strictvisitor</span></a></li><li>  <a href="dmd_target.html" title="dmd.target"><span class="d_inlinecode donthyphenate notranslate">target</span></a></li><li>  <a href="dmd_templateparamsem.html" title="dmd.templateparamsem"><span class="d_inlinecode donthyphenate notranslate">templateparamsem</span></a></li><li>  <a href="dmd_tocsym.html" title="dmd.tocsym"><span class="d_inlinecode donthyphenate notranslate">tocsym</span></a></li><li>  <a href="dmd_toctype.html" title="dmd.toctype"><span class="d_inlinecode donthyphenate notranslate">toctype</span></a></li><li>  <a href="dmd_tocvdebug.html" title="dmd.tocvdebug"><span class="d_inlinecode donthyphenate notranslate">tocvdebug</span></a></li><li>  <a href="dmd_todt.html" title="dmd.todt"><span class="d_inlinecode donthyphenate notranslate">todt</span></a></li><li>  <a href="dmd_toir.html" title="dmd.toir"><span class="d_inlinecode donthyphenate notranslate">toir</span></a></li><li>  <a href="dmd_tokens.html" title="dmd.tokens"><span class="d_inlinecode donthyphenate notranslate">tokens</span></a></li><li>  <a href="dmd_toobj.html" title="dmd.toobj"><span class="d_inlinecode donthyphenate notranslate">toobj</span></a></li><li>  <a href="dmd_traits.html" title="dmd.traits"><span class="d_inlinecode donthyphenate notranslate">traits</span></a></li><li>  <a href="dmd_transitivevisitor.html" title="dmd.transitivevisitor"><span class="d_inlinecode donthyphenate notranslate">transitivevisitor</span></a></li><li>  <a href="dmd_typesem.html" title="dmd.typesem"><span class="d_inlinecode donthyphenate notranslate">typesem</span></a></li><li>  <a href="dmd_typinf.html" title="dmd.typinf"><span class="d_inlinecode donthyphenate notranslate">typinf</span></a></li><li>  <a href="dmd_utf.html" title="dmd.utf"><span class="d_inlinecode donthyphenate notranslate">utf</span></a></li><li>  <a href="dmd_utils.html" title="dmd.utils"><span class="d_inlinecode donthyphenate notranslate">utils</span></a></li><li>  <a href="dmd_visitor.html" title="dmd.visitor"><span class="d_inlinecode donthyphenate notranslate">visitor</span></a></li><li>  <a href="dmd_vsoptions.html" title="dmd.vsoptions"><span class="d_inlinecode donthyphenate notranslate">vsoptions</span></a>
  148 </li></ul>
  149 </li>
  150 
  151 <li class='expand-container modlist-submenu-rt'><a class='expand-toggle' href='#'><span><em class="tt">rt</em></span></a>
  152 <ul><li>  <a href="rt_aApply.html" title="rt.aApply"><span class="d_inlinecode donthyphenate notranslate">aApply</span></a></li><li>  <a href="rt_aApplyR.html" title="rt.aApplyR"><span class="d_inlinecode donthyphenate notranslate">aApplyR</span></a></li><li>  <a href="rt_aaA.html" title="rt.aaA"><span class="d_inlinecode donthyphenate notranslate">aaA</span></a></li><li>  <a href="rt_adi.html" title="rt.adi"><span class="d_inlinecode donthyphenate notranslate">adi</span></a></li><li>  <a href="rt_alloca.html" title="rt.alloca"><span class="d_inlinecode donthyphenate notranslate">alloca</span></a></li><li>  <a href="rt_arrayassign.html" title="rt.arrayassign"><span class="d_inlinecode donthyphenate notranslate">arrayassign</span></a></li><li>  <a href="rt_arraycat.html" title="rt.arraycat"><span class="d_inlinecode donthyphenate notranslate">arraycat</span></a></li><li>  <h7><span class="d_inlinecode donthyphenate notranslate">backtrace</span></h7><ul><li>    <a href="rt_backtrace_dwarf.html" title="rt.backtrace.dwarf"><span class="d_inlinecode donthyphenate notranslate">dwarf</span></a></li><li>    <a href="rt_backtrace_elf.html" title="rt.backtrace.elf"><span class="d_inlinecode donthyphenate notranslate">elf</span></a></li><li>    <a href="rt_backtrace_macho.html" title="rt.backtrace.macho"><span class="d_inlinecode donthyphenate notranslate">macho</span></a>
  153   </li></ul></li><li>  <a href="rt_cast_.html" title="rt.cast_"><span class="d_inlinecode donthyphenate notranslate">cast_</span></a></li><li>  <a href="rt_cmath2.html" title="rt.cmath2"><span class="d_inlinecode donthyphenate notranslate">cmath2</span></a></li><li>  <a href="rt_config.html" title="rt.config"><span class="d_inlinecode donthyphenate notranslate">config</span></a></li><li>  <a href="rt_cover.html" title="rt.cover"><span class="d_inlinecode donthyphenate notranslate">cover</span></a></li><li>  <a href="rt_critical_.html" title="rt.critical_"><span class="d_inlinecode donthyphenate notranslate">critical_</span></a></li><li>  <a href="rt_deh.html" title="rt.deh"><span class="d_inlinecode donthyphenate notranslate">deh</span></a></li><li>  <a href="rt_deh_win32.html" title="rt.deh_win32"><span class="d_inlinecode donthyphenate notranslate">deh_win32</span></a></li><li>  <a href="rt_deh_win64_posix.html" title="rt.deh_win64_posix"><span class="d_inlinecode donthyphenate notranslate">deh_win64_posix</span></a></li><li>  <a href="rt_dmain2.html" title="rt.dmain2"><span class="d_inlinecode donthyphenate notranslate">dmain2</span></a></li><li>  <a href="rt_dwarfeh.html" title="rt.dwarfeh"><span class="d_inlinecode donthyphenate notranslate">dwarfeh</span></a></li><li>  <a href="rt_ehalloc.html" title="rt.ehalloc"><span class="d_inlinecode donthyphenate notranslate">ehalloc</span></a></li><li>  <a href="rt_invariant.html" title="rt.invariant"><span class="d_inlinecode donthyphenate notranslate">invariant</span></a></li><li>  <a href="rt_lifetime.html" title="rt.lifetime"><span class="d_inlinecode donthyphenate notranslate">lifetime</span></a></li><li>  <a href="rt_llmath.html" title="rt.llmath"><span class="d_inlinecode donthyphenate notranslate">llmath</span></a></li><li>  <a href="rt_memory.html" title="rt.memory"><span class="d_inlinecode donthyphenate notranslate">memory</span></a></li><li>  <a href="rt_memset.html" title="rt.memset"><span class="d_inlinecode donthyphenate notranslate">memset</span></a></li><li>  <a href="rt_minfo.html" title="rt.minfo"><span class="d_inlinecode donthyphenate notranslate">minfo</span></a></li><li>  <a href="rt_monitor_.html" title="rt.monitor_"><span class="d_inlinecode donthyphenate notranslate">monitor_</span></a></li><li>  <a href="rt_profilegc.html" title="rt.profilegc"><span class="d_inlinecode donthyphenate notranslate">profilegc</span></a></li><li>  <a href="rt_qsort.html" title="rt.qsort"><span class="d_inlinecode donthyphenate notranslate">qsort</span></a></li><li>  <a href="rt_sections.html" title="rt.sections"><span class="d_inlinecode donthyphenate notranslate">sections</span></a></li><li>  <a href="rt_sections_android.html" title="rt.sections_android"><span class="d_inlinecode donthyphenate notranslate">sections_android</span></a></li><li>  <a href="rt_sections_darwin_64.html" title="rt.sections_darwin_64"><span class="d_inlinecode donthyphenate notranslate">sections_darwin_64</span></a></li><li>  <a href="rt_sections_elf_shared.html" title="rt.sections_elf_shared"><span class="d_inlinecode donthyphenate notranslate">sections_elf_shared</span></a></li><li>  <a href="rt_sections_osx_x86.html" title="rt.sections_osx_x86"><span class="d_inlinecode donthyphenate notranslate">sections_osx_x86</span></a></li><li>  <a href="rt_sections_osx_x86_64.html" title="rt.sections_osx_x86_64"><span class="d_inlinecode donthyphenate notranslate">sections_osx_x86_64</span></a></li><li>  <a href="rt_sections_solaris.html" title="rt.sections_solaris"><span class="d_inlinecode donthyphenate notranslate">sections_solaris</span></a></li><li>  <a href="rt_sections_win32.html" title="rt.sections_win32"><span class="d_inlinecode donthyphenate notranslate">sections_win32</span></a></li><li>  <a href="rt_sections_win64.html" title="rt.sections_win64"><span class="d_inlinecode donthyphenate notranslate">sections_win64</span></a></li><li>  <a href="rt_tlsgc.html" title="rt.tlsgc"><span class="d_inlinecode donthyphenate notranslate">tlsgc</span></a></li><li>  <a href="rt_trace.html" title="rt.trace"><span class="d_inlinecode donthyphenate notranslate">trace</span></a></li><li>  <a href="rt_tracegc.html" title="rt.tracegc"><span class="d_inlinecode donthyphenate notranslate">tracegc</span></a></li><li>  <a href="rt_unwind.html" title="rt.unwind"><span class="d_inlinecode donthyphenate notranslate">unwind</span></a></li><li>  <h7><span class="d_inlinecode donthyphenate notranslate">util</span></h7><ul><li>    <h7><span class="d_inlinecode donthyphenate notranslate">container</span></h7><ul><li>      <a href="rt_util_container_array.html" title="rt.util.container.array"><span class="d_inlinecode donthyphenate notranslate">array</span></a></li><li>      <a href="rt_util_container_common.html" title="rt.util.container.common"><span class="d_inlinecode donthyphenate notranslate">common</span></a></li><li>      <a href="rt_util_container_hashtab.html" title="rt.util.container.hashtab"><span class="d_inlinecode donthyphenate notranslate">hashtab</span></a></li><li>      <a href="rt_util_container_treap.html" title="rt.util.container.treap"><span class="d_inlinecode donthyphenate notranslate">treap</span></a>
  154     </li></ul></li><li>    <a href="rt_util_random.html" title="rt.util.random"><span class="d_inlinecode donthyphenate notranslate">random</span></a></li><li>    <a href="rt_util_typeinfo.html" title="rt.util.typeinfo"><span class="d_inlinecode donthyphenate notranslate">typeinfo</span></a></li><li>    <a href="rt_util_utility.html" title="rt.util.utility"><span class="d_inlinecode donthyphenate notranslate">utility</span></a>
  155   </li></ul>
  156 </li></ul>
  157 </li></ul>
  158 </div>
  159     <div class="hyphenate" id="content">        
  160 <div id="tools"><div >  <div class="tip smallprint">        <a href="https://issues.dlang.org/enter_bug.cgi?bug_file_loc=http%3A%2F%2Fdlang.org/phobos/&amp;component=phobos&amp;op_sys=All&amp;priority=P3&amp;product=D&amp;rep_platform=All&amp;short_desc=%5Bstd.socket%5D&amp;version=D2&amp;bug_severity=enhancement">Report a bug</a>
  161         <div >          If you spot a problem with this page, click here to create a Bugzilla issue.
  162         </div>
  163     </div>
  164     <div class="tip smallprint">        <a href="https://github.com/dlang/phobos/edit/master/std/socket.d">Improve this page</a>
  165         <div >          Quickly fork, edit online, and submit a pull request for this page.
  166             Requires a signed-in GitHub account. This works well for small changes.
  167             If you'd like to make larger changes you may want to consider using
  168             a local clone.
  169         </div>
  170     </div>
  171 </div></div>
  172         <h1><span class="d_title">std.socket</span></h1>
  173         <div class="quickindex" id="quickindex"></div>
  174         <div class="summary">Socket primitives.
  175 </div><div class="val"><p class="keyval Section"><span class="key keySection">Example</span>
  176 See <span class="sample_src"><a class="https" href="https://github.com/dlang/dmd/blob/master/samples/listener.d">/dmd/samples/d/listener.d</a></span> and <span class="sample_src"><a class="https" href="https://github.com/dlang/dmd/blob/master/samples/htmlget.d">/dmd/samples/d/htmlget.d</a></span>
  177 </p></div>
  178 <div class="keyval License"><span class="key keyLicense">License:</span> <div class="val valLicense"><a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
  179 </div></div>
  180 <div class="keyval Authors"><span class="key keyAuthors">Authors:</span> <div class="val valAuthors">Christopher E. Miller, <a href="http://klickverbot.at">David Nadlinger</a>,
  181       <a href="http://thecybershadow.net">Vladimir Panteleev</a>
  182 </div></div>
  183 <div class="val"><p class="keyval Section"><span class="key keySection">Source</span>
  184 <span class="phobos_src"><a class="https" href="https://github.com/dlang/phobos/blob/master/std/socket.d">std/socket.d</a></span></p></div>
  185 
  186 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".SocketException"></span><div class="quickindex" id="quickindex.SocketException"></div>class <span class="def-anchor" id="SocketException"></span><code class="ddoc_psymbol">SocketException</code>: <span class="ddoc_psuper_symbol">object.Exception</span>;
  187 <br></div></dt>
  188 <dd><div class="summary">Base exception thrown by <span class="d_inlinecode donthyphenate notranslate">std.socket</span>.</div>
  189 </dd>
  190 <dt class="d_decl"><div ><span class="def-anchor" id=".lastSocketError"></span><div class="quickindex" id="quickindex.lastSocketError"></div>@property @safe string <span class="def-anchor" id="lastSocketError"></span><code class="ddoc_psymbol">lastSocketError</code>();
  191 <br></div></dt>
  192 <dd><div class="summary">Retrieve the error message for the most recently encountered network error.</div>
  193 </dd>
  194 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOSException"></span><div class="quickindex" id="quickindex.SocketOSException"></div>class <span class="def-anchor" id="SocketOSException"></span><code class="ddoc_psymbol">SocketOSException</code>: <span class="ddoc_psuper_symbol">std.socket.SocketException</span>;
  195 <br></div></dt>
  196 <dd><div class="summary">Socket exceptions representing network errors reported by the operating
  197  system.</div>
  198 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".SocketOSException.errorCode"></span><div class="quickindex" id="quickindex.SocketOSException.errorCode"></div>int <span class="def-anchor" id="errorCode"></span><code class="ddoc_psymbol">errorCode</code>;
  199 <br></div></dt>
  200 <dd><div class="summary">Platform-specific error code.</div>
  201 </dd>
  202 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOSException.this"></span><div class="quickindex" id="quickindex.SocketOSException.this"></div>@safe this(string <code class="ddoc_param">msg</code>, string <code class="ddoc_param">file</code> = __FILE__, size_t <code class="ddoc_param">line</code> = __LINE__, Throwable <code class="ddoc_param">next</code> = null, int <code class="ddoc_param">err</code> = _lasterr(), string function(int) @trusted <code class="ddoc_param">errorFormatter</code> = &amp;formatSocketError);
  203 <br></div></dt>
  204 <dd>
  205 </dd>
  206 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOSException.this.2"></span><div class="quickindex" id="quickindex.SocketOSException.this.2"></div>@safe this(string <code class="ddoc_param">msg</code>, Throwable <code class="ddoc_param">next</code>, string <code class="ddoc_param">file</code> = __FILE__, size_t <code class="ddoc_param">line</code> = __LINE__, int <code class="ddoc_param">err</code> = _lasterr(), string function(int) @trusted <code class="ddoc_param">errorFormatter</code> = &amp;formatSocketError);
  207 <br></div></dt>
  208 <dd>
  209 </dd>
  210 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOSException.this.3"></span><div class="quickindex" id="quickindex.SocketOSException.this.3"></div>@safe this(string <code class="ddoc_param">msg</code>, int <code class="ddoc_param">err</code>, string function(int) @trusted <code class="ddoc_param">errorFormatter</code> = &amp;formatSocketError, string <code class="ddoc_param">file</code> = __FILE__, size_t <code class="ddoc_param">line</code> = __LINE__, Throwable <code class="ddoc_param">next</code> = null);
  211 <br></div></dt>
  212 <dd>
  213 </dd>
  214 </dl>
  215 </dd>
  216 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketParameterException"></span><div class="quickindex" id="quickindex.SocketParameterException"></div>class <span class="def-anchor" id="SocketParameterException"></span><code class="ddoc_psymbol">SocketParameterException</code>: <span class="ddoc_psuper_symbol">std.socket.SocketException</span>;
  217 <br></div></dt>
  218 <dd><div class="summary">Socket exceptions representing invalid parameters specified by user code.</div>
  219 </dd>
  220 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketFeatureException"></span><div class="quickindex" id="quickindex.SocketFeatureException"></div>class <span class="def-anchor" id="SocketFeatureException"></span><code class="ddoc_psymbol">SocketFeatureException</code>: <span class="ddoc_psuper_symbol">std.socket.SocketException</span>;
  221 <br></div></dt>
  222 <dd><div class="summary">Socket exceptions representing attempts to use network capabilities not
  223  available on the current system.</div>
  224 </dd>
  225 <dt class="d_decl"><div ><span class="def-anchor" id=".wouldHaveBlocked"></span><div class="quickindex" id="quickindex.wouldHaveBlocked"></div>nothrow @nogc @safe bool <span class="def-anchor" id="wouldHaveBlocked"></span><code class="ddoc_psymbol">wouldHaveBlocked</code>();
  226 <br></div></dt>
  227 <dd><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns"><span class="d_inlinecode donthyphenate notranslate">true</span> if the last socket operation failed because the socket
  228  was in non-blocking mode and the operation would have blocked,
  229  or if the socket is in blocking mode and set a SNDTIMEO or RCVTIMEO,
  230  and the operation timed out.</div></div>
  231 
  232 </dd>
  233 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressFamily"></span><div class="quickindex" id="quickindex.AddressFamily"></div>enum <span class="def-anchor" id="AddressFamily"></span><code class="ddoc_psymbol">AddressFamily</code>: ushort;
  234 <br></div></dt>
  235 <dd><div class="summary">The communication domain used to resolve an address.</div>
  236 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".AddressFamily.UNSPEC"></span><div class="quickindex" id="quickindex.AddressFamily.UNSPEC"></div><span class="def-anchor" id="UNSPEC"></span><code class="ddoc_psymbol">UNSPEC</code><br></div></dt>
  237 <dd><div class="summary">Unspecified address family</div>
  238 </dd>
  239 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressFamily.UNIX"></span><div class="quickindex" id="quickindex.AddressFamily.UNIX"></div><span class="def-anchor" id="UNIX"></span><code class="ddoc_psymbol">UNIX</code><br></div></dt>
  240 <dd><div class="summary">Local communication</div>
  241 </dd>
  242 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressFamily.INET"></span><div class="quickindex" id="quickindex.AddressFamily.INET"></div><span class="def-anchor" id="INET"></span><code class="ddoc_psymbol">INET</code><br></div></dt>
  243 <dd><div class="summary">Internet Protocol version 4</div>
  244 </dd>
  245 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressFamily.IPX"></span><div class="quickindex" id="quickindex.AddressFamily.IPX"></div><span class="def-anchor" id="IPX"></span><code class="ddoc_psymbol">IPX</code><br></div></dt>
  246 <dd><div class="summary">Novell IPX</div>
  247 </dd>
  248 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressFamily.APPLETALK"></span><div class="quickindex" id="quickindex.AddressFamily.APPLETALK"></div><span class="def-anchor" id="APPLETALK"></span><code class="ddoc_psymbol">APPLETALK</code><br></div></dt>
  249 <dd><div class="summary">AppleTalk</div>
  250 </dd>
  251 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressFamily.INET6"></span><div class="quickindex" id="quickindex.AddressFamily.INET6"></div><span class="def-anchor" id="INET6"></span><code class="ddoc_psymbol">INET6</code><br></div></dt>
  252 <dd><div class="summary">Internet Protocol version 6</div>
  253 </dd>
  254 </dl>
  255 </dd>
  256 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketType"></span><div class="quickindex" id="quickindex.SocketType"></div>enum <span class="def-anchor" id="SocketType"></span><code class="ddoc_psymbol">SocketType</code>: int;
  257 <br></div></dt>
  258 <dd><div class="summary">Communication semantics</div>
  259 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".SocketType.STREAM"></span><div class="quickindex" id="quickindex.SocketType.STREAM"></div><span class="def-anchor" id="STREAM"></span><code class="ddoc_psymbol">STREAM</code><br></div></dt>
  260 <dd><div class="summary">Sequenced, reliable, two-way communication-based byte streams</div>
  261 </dd>
  262 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketType.DGRAM"></span><div class="quickindex" id="quickindex.SocketType.DGRAM"></div><span class="def-anchor" id="DGRAM"></span><code class="ddoc_psymbol">DGRAM</code><br></div></dt>
  263 <dd><div class="summary">Connectionless, unreliable datagrams with a fixed maximum length; data may be lost or arrive out of order</div>
  264 </dd>
  265 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketType.RAW"></span><div class="quickindex" id="quickindex.SocketType.RAW"></div><span class="def-anchor" id="RAW"></span><code class="ddoc_psymbol">RAW</code><br></div></dt>
  266 <dd><div class="summary">Raw protocol access</div>
  267 </dd>
  268 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketType.RDM"></span><div class="quickindex" id="quickindex.SocketType.RDM"></div><span class="def-anchor" id="RDM"></span><code class="ddoc_psymbol">RDM</code><br></div></dt>
  269 <dd><div class="summary">Reliably-delivered message datagrams</div>
  270 </dd>
  271 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketType.SEQPACKET"></span><div class="quickindex" id="quickindex.SocketType.SEQPACKET"></div><span class="def-anchor" id="SEQPACKET"></span><code class="ddoc_psymbol">SEQPACKET</code><br></div></dt>
  272 <dd><div class="summary">Sequenced, reliable, two-way connection-based datagrams with a fixed maximum length</div>
  273 </dd>
  274 </dl>
  275 </dd>
  276 <dt class="d_decl"><div ><span class="def-anchor" id=".ProtocolType"></span><div class="quickindex" id="quickindex.ProtocolType"></div>enum <span class="def-anchor" id="ProtocolType"></span><code class="ddoc_psymbol">ProtocolType</code>: int;
  277 <br></div></dt>
  278 <dd><div class="summary">Protocol</div>
  279 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".ProtocolType.IP"></span><div class="quickindex" id="quickindex.ProtocolType.IP"></div><span class="def-anchor" id="IP"></span><code class="ddoc_psymbol">IP</code><br></div></dt>
  280 <dd><div class="summary">Internet Protocol version 4</div>
  281 </dd>
  282 <dt class="d_decl"><div ><span class="def-anchor" id=".ProtocolType.ICMP"></span><div class="quickindex" id="quickindex.ProtocolType.ICMP"></div><span class="def-anchor" id="ICMP"></span><code class="ddoc_psymbol">ICMP</code><br></div></dt>
  283 <dd><div class="summary">Internet Control Message Protocol</div>
  284 </dd>
  285 <dt class="d_decl"><div ><span class="def-anchor" id=".ProtocolType.IGMP"></span><div class="quickindex" id="quickindex.ProtocolType.IGMP"></div><span class="def-anchor" id="IGMP"></span><code class="ddoc_psymbol">IGMP</code><br></div></dt>
  286 <dd><div class="summary">Internet Group Management Protocol</div>
  287 </dd>
  288 <dt class="d_decl"><div ><span class="def-anchor" id=".ProtocolType.GGP"></span><div class="quickindex" id="quickindex.ProtocolType.GGP"></div><span class="def-anchor" id="GGP"></span><code class="ddoc_psymbol">GGP</code><br></div></dt>
  289 <dd><div class="summary">Gateway to Gateway Protocol</div>
  290 </dd>
  291 <dt class="d_decl"><div ><span class="def-anchor" id=".ProtocolType.TCP"></span><div class="quickindex" id="quickindex.ProtocolType.TCP"></div><span class="def-anchor" id="TCP"></span><code class="ddoc_psymbol">TCP</code><br></div></dt>
  292 <dd><div class="summary">Transmission Control Protocol</div>
  293 </dd>
  294 <dt class="d_decl"><div ><span class="def-anchor" id=".ProtocolType.PUP"></span><div class="quickindex" id="quickindex.ProtocolType.PUP"></div><span class="def-anchor" id="PUP"></span><code class="ddoc_psymbol">PUP</code><br></div></dt>
  295 <dd><div class="summary">PARC Universal Packet Protocol</div>
  296 </dd>
  297 <dt class="d_decl"><div ><span class="def-anchor" id=".ProtocolType.UDP"></span><div class="quickindex" id="quickindex.ProtocolType.UDP"></div><span class="def-anchor" id="UDP"></span><code class="ddoc_psymbol">UDP</code><br></div></dt>
  298 <dd><div class="summary">User Datagram Protocol</div>
  299 </dd>
  300 <dt class="d_decl"><div ><span class="def-anchor" id=".ProtocolType.IDP"></span><div class="quickindex" id="quickindex.ProtocolType.IDP"></div><span class="def-anchor" id="IDP"></span><code class="ddoc_psymbol">IDP</code><br></div></dt>
  301 <dd><div class="summary">Xerox NS protocol</div>
  302 </dd>
  303 <dt class="d_decl"><div ><span class="def-anchor" id=".ProtocolType.RAW"></span><div class="quickindex" id="quickindex.ProtocolType.RAW"></div><span class="def-anchor" id="RAW"></span><code class="ddoc_psymbol">RAW</code><br></div></dt>
  304 <dd><div class="summary">Raw IP packets</div>
  305 </dd>
  306 <dt class="d_decl"><div ><span class="def-anchor" id=".ProtocolType.IPV6"></span><div class="quickindex" id="quickindex.ProtocolType.IPV6"></div><span class="def-anchor" id="IPV6"></span><code class="ddoc_psymbol">IPV6</code><br></div></dt>
  307 <dd><div class="summary">Internet Protocol version 6</div>
  308 </dd>
  309 </dl>
  310 </dd>
  311 <dt class="d_decl"><div ><span class="def-anchor" id=".Protocol"></span><div class="quickindex" id="quickindex.Protocol"></div>class <span class="def-anchor" id="Protocol"></span><code class="ddoc_psymbol">Protocol</code>;
  312 <br></div></dt>
  313 <dd><div class="summary"><span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="Protocol"></span><code class="ddoc_psymbol">Protocol</code></span> is a class for retrieving protocol information.
  314 </div><div class="val"><p class="keyval Section"><span class="key keySection">Example</span>
  315 <pre class="d_code notranslate"><span class="d_keyword">auto</span> proto = <span class="d_keyword">new</span> <span class="d_psymbol">Protocol</span>;
  316 writeln(<span class="d_string">"About protocol TCP:"</span>);
  317 <span class="d_keyword">if</span> (proto.getProtocolByType(ProtocolType.TCP))
  318 {
  319     writefln(<span class="d_string">"  Name: %s"</span>, proto.name);
  320     <span class="d_keyword">foreach</span> (string s; proto.aliases)
  321          writefln(<span class="d_string">"  Alias: %s"</span>, s);
  322 }
  323 <span class="d_keyword">else</span>
  324     writeln(<span class="d_string">"  No information found"</span>);
  325 </pre>
  326 </p></div>
  327 
  328 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".Protocol.type"></span><div class="quickindex" id="quickindex.Protocol.type"></div>ProtocolType <span class="def-anchor" id="type"></span><code class="ddoc_psymbol">type</code>;
  329 <br><br><span class="def-anchor" id=".Protocol.name"></span><div class="quickindex" id="quickindex.Protocol.name"></div>string <span class="def-anchor" id="name"></span><code class="ddoc_psymbol">name</code>;
  330 <br><br><span class="def-anchor" id=".Protocol.aliases"></span><div class="quickindex" id="quickindex.Protocol.aliases"></div>string[] <span class="def-anchor" id="aliases"></span><code class="ddoc_psymbol">aliases</code>;
  331 <br></div></dt>
  332 <dd><div class="summary">These members are populated when one of the following functions are called successfully:</div>
  333 </dd>
  334 <dt class="d_decl"><div ><span class="def-anchor" id=".Protocol.getProtocolByName"></span><div class="quickindex" id="quickindex.Protocol.getProtocolByName"></div>nothrow @trusted bool <span class="def-anchor" id="getProtocolByName"></span><code class="ddoc_psymbol">getProtocolByName</code>(scope const(char)[] <code class="ddoc_param">name</code>);
  335 <br></div></dt>
  336 <dd><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">false on failure</div></div>
  337 
  338 </dd>
  339 <dt class="d_decl"><div ><span class="def-anchor" id=".Protocol.getProtocolByType"></span><div class="quickindex" id="quickindex.Protocol.getProtocolByType"></div>nothrow @trusted bool <span class="def-anchor" id="getProtocolByType"></span><code class="ddoc_psymbol">getProtocolByType</code>(ProtocolType <code class="ddoc_param">type</code>);
  340 <br></div></dt>
  341 <dd><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">false on failure</div></div>
  342 
  343 </dd>
  344 </dl>
  345 </dd>
  346 <dt class="d_decl"><div ><span class="def-anchor" id=".Service"></span><div class="quickindex" id="quickindex.Service"></div>class <span class="def-anchor" id="Service"></span><code class="ddoc_psymbol">Service</code>;
  347 <br></div></dt>
  348 <dd><div class="summary"><span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="Service"></span><code class="ddoc_psymbol">Service</code></span> is a class for retrieving service information.
  349 </div><div class="val"><p class="keyval Section"><span class="key keySection">Example</span>
  350 <pre class="d_code notranslate"><span class="d_keyword">auto</span> serv = <span class="d_keyword">new</span> <span class="d_psymbol">Service</span>;
  351 writeln(<span class="d_string">"About service epmap:"</span>);
  352 <span class="d_keyword">if</span> (serv.getServiceByName(<span class="d_string">"epmap"</span>, <span class="d_string">"tcp"</span>))
  353 {
  354     writefln(<span class="d_string">"  Service: %s"</span>, serv.name);
  355     writefln(<span class="d_string">"  Port: %d"</span>, serv.port);
  356     writefln(<span class="d_string">"  Protocol: %s"</span>, serv.protocolName);
  357     <span class="d_keyword">foreach</span> (string s; serv.aliases)
  358          writefln(<span class="d_string">"  Alias: %s"</span>, s);
  359 }
  360 <span class="d_keyword">else</span>
  361     writefln(<span class="d_string">"  No service for epmap."</span>);
  362 </pre>
  363 </p></div>
  364 
  365 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".Service.name"></span><div class="quickindex" id="quickindex.Service.name"></div>string <span class="def-anchor" id="name"></span><code class="ddoc_psymbol">name</code>;
  366 <br><br><span class="def-anchor" id=".Service.aliases"></span><div class="quickindex" id="quickindex.Service.aliases"></div>string[] <span class="def-anchor" id="aliases"></span><code class="ddoc_psymbol">aliases</code>;
  367 <br><br><span class="def-anchor" id=".Service.port"></span><div class="quickindex" id="quickindex.Service.port"></div>ushort <span class="def-anchor" id="port"></span><code class="ddoc_psymbol">port</code>;
  368 <br><br><span class="def-anchor" id=".Service.protocolName"></span><div class="quickindex" id="quickindex.Service.protocolName"></div>string <span class="def-anchor" id="protocolName"></span><code class="ddoc_psymbol">protocolName</code>;
  369 <br></div></dt>
  370 <dd><div class="summary">These members are populated when one of the following functions are called successfully:</div>
  371 </dd>
  372 <dt class="d_decl"><div ><span class="def-anchor" id=".Service.getServiceByName"></span><div class="quickindex" id="quickindex.Service.getServiceByName"></div>nothrow @trusted bool <span class="def-anchor" id="getServiceByName"></span><code class="ddoc_psymbol">getServiceByName</code>(scope const(char)[] <code class="ddoc_param">name</code>, scope const(char)[] <code class="ddoc_param">protocolName</code> = null);
  373 <br><br><span class="def-anchor" id=".Service.getServiceByPort"></span><div class="quickindex" id="quickindex.Service.getServiceByPort"></div>nothrow @trusted bool <span class="def-anchor" id="getServiceByPort"></span><code class="ddoc_psymbol">getServiceByPort</code>(ushort <code class="ddoc_param">port</code>, scope const(char)[] <code class="ddoc_param">protocolName</code> = null);
  374 <br></div></dt>
  375 <dd><div class="summary">If a protocol name is omitted, any protocol will be matched.
  376 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">false on failure.</div></div>
  377 
  378 </dd>
  379 </dl>
  380 </dd>
  381 <dt class="d_decl"><div ><span class="def-anchor" id=".HostException"></span><div class="quickindex" id="quickindex.HostException"></div>class <span class="def-anchor" id="HostException"></span><code class="ddoc_psymbol">HostException</code>: <span class="ddoc_psuper_symbol">std.socket.SocketOSException</span>;
  382 <br></div></dt>
  383 <dd><div class="summary">Class for exceptions thrown from an <span class="d_inlinecode donthyphenate notranslate">InternetHost</span>.</div>
  384 </dd>
  385 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetHost"></span><div class="quickindex" id="quickindex.InternetHost"></div>class <span class="def-anchor" id="InternetHost"></span><code class="ddoc_psymbol">InternetHost</code>;
  386 <br></div></dt>
  387 <dd><div class="summary"><span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="InternetHost"></span><code class="ddoc_psymbol">InternetHost</code></span> is a class for resolving IPv4 addresses.
  388 </div><div class="description">Consider using <span class="d_inlinecode donthyphenate notranslate">getAddress</span>, <span class="d_inlinecode donthyphenate notranslate">parseAddress</span> and <span class="d_inlinecode donthyphenate notranslate">Address</span> methods
  389  instead of using this class directly.</div>
  390 <span class="dlang_runnable"></span><div class="keyval Examples"><span class="key keyExamples">Examples:</span> <div class="val valExamples"><pre class="d_code notranslate"><span class="d_psymbol">InternetHost</span> ih = <span class="d_keyword">new</span> <span class="d_psymbol">InternetHost</span>;
  391 
  392 ih.getHostByAddr(0x7F_00_00_01);
  393 writeln(ih.addrList[0]); <span class="d_comment">// 0x7F_00_00_01
  394 </span>ih.getHostByAddr(<span class="d_string">"127.0.0.1"</span>);
  395 writeln(ih.addrList[0]); <span class="d_comment">// 0x7F_00_00_01
  396 </span>
  397 <span class="d_keyword">if</span> (!ih.getHostByName(<span class="d_string">"www.digitalmars.com"</span>))
  398     <span class="d_keyword">return</span>;             <span class="d_comment">// don't fail if not connected to internet
  399 </span>
  400 <span class="d_keyword">assert</span>(ih.addrList.length);
  401 InternetAddress ia = <span class="d_keyword">new</span> InternetAddress(ih.addrList[0], InternetAddress.PORT_ANY);
  402 <span class="d_keyword">assert</span>(ih.name == <span class="d_string">"www.digitalmars.com"</span> || ih.name == <span class="d_string">"digitalmars.com"</span>,
  403         ih.name);
  404 
  405 <span class="d_keyword">assert</span>(ih.getHostByAddr(ih.addrList[0]));
  406 string getHostNameFromInt = ih.name.dup;
  407 
  408 <span class="d_keyword">assert</span>(ih.getHostByAddr(ia.toAddrString()));
  409 string getHostNameFromStr = ih.name.dup;
  410 
  411 writeln(getHostNameFromInt); <span class="d_comment">// getHostNameFromStr
  412 </span></pre>
  413 </div></div>
  414 
  415 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".InternetHost.name"></span><div class="quickindex" id="quickindex.InternetHost.name"></div>string <span class="def-anchor" id="name"></span><code class="ddoc_psymbol">name</code>;
  416 <br><br><span class="def-anchor" id=".InternetHost.aliases"></span><div class="quickindex" id="quickindex.InternetHost.aliases"></div>string[] <span class="def-anchor" id="aliases"></span><code class="ddoc_psymbol">aliases</code>;
  417 <br><br><span class="def-anchor" id=".InternetHost.addrList"></span><div class="quickindex" id="quickindex.InternetHost.addrList"></div>uint[] <span class="def-anchor" id="addrList"></span><code class="ddoc_psymbol">addrList</code>;
  418 <br></div></dt>
  419 <dd><div class="summary">These members are populated when one of the following functions are called successfully:</div>
  420 </dd>
  421 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetHost.getHostByName"></span><div class="quickindex" id="quickindex.InternetHost.getHostByName"></div>@trusted bool <span class="def-anchor" id="getHostByName"></span><code class="ddoc_psymbol">getHostByName</code>(scope const(char)[] <code class="ddoc_param">name</code>);
  422 <br></div></dt>
  423 <dd><div class="summary">Resolve host name.
  424 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">false if unable to resolve.</div></div>
  425 
  426 </dd>
  427 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetHost.getHostByAddr"></span><div class="quickindex" id="quickindex.InternetHost.getHostByAddr"></div>@trusted bool <span class="def-anchor" id="getHostByAddr"></span><code class="ddoc_psymbol">getHostByAddr</code>(uint <code class="ddoc_param">addr</code>);
  428 <br></div></dt>
  429 <dd><div class="summary">Resolve IPv4 address number.
  430 </div><div class="keyval Parameters"><span class="key keyParameters">Parameters:</span> <div class="val valParameters"><table class="params"><tr class="param"><td class="param_id">uint <code class="ddoc_param">addr</code></td>
  431 <td class="param_desc">The IPv4 address to resolve, in host byte order.</td></tr>
  432 </table></div></div>
  433 <div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">false if unable to resolve.</div></div>
  434 
  435 </dd>
  436 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetHost.getHostByAddr.2"></span><div class="quickindex" id="quickindex.InternetHost.getHostByAddr.2"></div>@trusted bool <span class="def-anchor" id="getHostByAddr"></span><code class="ddoc_psymbol">getHostByAddr</code>(scope const(char)[] <code class="ddoc_param">addr</code>);
  437 <br></div></dt>
  438 <dd><div class="summary">Same as previous, but addr is an IPv4 address string in the
  439  dotted-decimal form <i>a.b.c.d</i>.
  440 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">false if unable to resolve.</div></div>
  441 
  442 </dd>
  443 </dl>
  444 </dd>
  445 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressInfo"></span><div class="quickindex" id="quickindex.AddressInfo"></div>struct <span class="def-anchor" id="AddressInfo"></span><code class="ddoc_psymbol">AddressInfo</code>;
  446 <br></div></dt>
  447 <dd><div class="summary">Holds information about a socket address retrieved by <span class="d_inlinecode donthyphenate notranslate">getAddressInfo</span>.</div>
  448 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".AddressInfo.family"></span><div class="quickindex" id="quickindex.AddressInfo.family"></div>AddressFamily <span class="def-anchor" id="family"></span><code class="ddoc_psymbol">family</code>;
  449 <br></div></dt>
  450 <dd><div class="summary">Address family</div>
  451 </dd>
  452 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressInfo.type"></span><div class="quickindex" id="quickindex.AddressInfo.type"></div>SocketType <span class="def-anchor" id="type"></span><code class="ddoc_psymbol">type</code>;
  453 <br></div></dt>
  454 <dd><div class="summary">Socket type</div>
  455 </dd>
  456 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressInfo.protocol"></span><div class="quickindex" id="quickindex.AddressInfo.protocol"></div>ProtocolType <span class="def-anchor" id="protocol"></span><code class="ddoc_psymbol">protocol</code>;
  457 <br></div></dt>
  458 <dd><div class="summary">Protocol</div>
  459 </dd>
  460 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressInfo.address"></span><div class="quickindex" id="quickindex.AddressInfo.address"></div>Address <span class="def-anchor" id="address"></span><code class="ddoc_psymbol">address</code>;
  461 <br></div></dt>
  462 <dd><div class="summary">Socket address</div>
  463 </dd>
  464 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressInfo.canonicalName"></span><div class="quickindex" id="quickindex.AddressInfo.canonicalName"></div>string <span class="def-anchor" id="canonicalName"></span><code class="ddoc_psymbol">canonicalName</code>;
  465 <br></div></dt>
  466 <dd><div class="summary">Canonical name, when <span class="d_inlinecode donthyphenate notranslate">AddressInfoFlags.CANONNAME</span> is used.</div>
  467 </dd>
  468 </dl>
  469 </dd>
  470 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressInfoFlags"></span><div class="quickindex" id="quickindex.AddressInfoFlags"></div>enum <span class="def-anchor" id="AddressInfoFlags"></span><code class="ddoc_psymbol">AddressInfoFlags</code>: int;
  471 <br></div></dt>
  472 <dd><div class="summary">A subset of flags supported on all platforms with getaddrinfo.
  473  Specifies option flags for <span class="d_inlinecode donthyphenate notranslate">getAddressInfo</span>.</div>
  474 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".AddressInfoFlags.PASSIVE"></span><div class="quickindex" id="quickindex.AddressInfoFlags.PASSIVE"></div><span class="def-anchor" id="PASSIVE"></span><code class="ddoc_psymbol">PASSIVE</code><br></div></dt>
  475 <dd><div class="summary">The resulting addresses will be used in a call to <span class="d_inlinecode donthyphenate notranslate">Socket.bind</span>.</div>
  476 </dd>
  477 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressInfoFlags.CANONNAME"></span><div class="quickindex" id="quickindex.AddressInfoFlags.CANONNAME"></div><span class="def-anchor" id="CANONNAME"></span><code class="ddoc_psymbol">CANONNAME</code><br></div></dt>
  478 <dd><div class="summary">The canonical name is returned in <span class="d_inlinecode donthyphenate notranslate">canonicalName</span> member in the first <span class="d_inlinecode donthyphenate notranslate">AddressInfo</span>.</div>
  479 </dd>
  480 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressInfoFlags.NUMERICHOST"></span><div class="quickindex" id="quickindex.AddressInfoFlags.NUMERICHOST"></div><span class="def-anchor" id="NUMERICHOST"></span><code class="ddoc_psymbol">NUMERICHOST</code><br></div></dt>
  481 <dd><div class="summary">The <span class="d_inlinecode donthyphenate notranslate">node</span> parameter passed to <span class="d_inlinecode donthyphenate notranslate">getAddressInfo</span> must be a numeric string.
  482  This will suppress any potentially lengthy network host address lookups.</div>
  483 </dd>
  484 </dl>
  485 </dd>
  486 <dt class="d_decl"><div ><span class="def-anchor" id=".getAddressInfo"></span><div class="quickindex" id="quickindex.getAddressInfo"></div>AddressInfo[] <span class="def-anchor" id="getAddressInfo"></span><code class="ddoc_psymbol">getAddressInfo</code><span class="template_param_list" title="Template parameter list">(T...)</span>(scope const(char)[] <code class="ddoc_param">node</code>, scope T <code class="ddoc_param">options</code>);
  487 <br></div></dt>
  488 <dd><div class="summary">Provides protocol-independent translation from host names to socket
  489  addresses. If advanced functionality is not required, consider using
  490  <span class="d_inlinecode donthyphenate notranslate">getAddress</span> for compatibility with older systems.
  491 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">Array with one <span class="d_inlinecode donthyphenate notranslate">AddressInfo</span> per socket address.
  492 
  493 </div></div>
  494 <div class="keyval Throws"><span class="key keyThrows">Throws:</span> <div class="val valThrows"><span class="d_inlinecode donthyphenate notranslate">SocketOSException</span> on failure, or <span class="d_inlinecode donthyphenate notranslate">SocketFeatureException</span>
  495  if this functionality is not available on the current system.
  496 
  497 </div></div>
  498 <div class="keyval Parameters"><span class="key keyParameters">Parameters:</span> <div class="val valParameters"><table class="params"><tr class="param"><td class="param_id">const(char)[] <code class="ddoc_param">node</code></td>
  499 <td class="param_desc">string containing host name or numeric address</td></tr>
  500 <tr class="param"><td class="param_id">T <code class="ddoc_param">options</code></td>
  501 <td class="param_desc">optional additional parameters, identified by type:
  502              <ul><li><span class="d_inlinecode donthyphenate notranslate">string</span> - service name or port number</li>
  503                   <li><span class="d_inlinecode donthyphenate notranslate">AddressInfoFlags</span> - option flags</li>
  504                   <li><span class="d_inlinecode donthyphenate notranslate">AddressFamily</span> - address family to filter by</li>
  505                   <li><span class="d_inlinecode donthyphenate notranslate">SocketType</span> - socket type to filter by</li>
  506                   <li><span class="d_inlinecode donthyphenate notranslate">ProtocolType</span> - protocol to filter by</li></ul></td></tr>
  507 </table></div></div>
  508 <div class="val"><p class="keyval Section"><span class="key keySection">Example</span>
  509 <pre class="d_code notranslate"><span class="d_comment">// Roundtrip DNS resolution
  510 </span><span class="d_keyword">auto</span> results = <span class="d_psymbol">getAddressInfo</span>(<span class="d_string">"www.digitalmars.com"</span>);
  511 <span class="d_keyword">assert</span>(results[0].address.toHostNameString() ==
  512     <span class="d_string">"digitalmars.com"</span>);
  513 
  514 <span class="d_comment">// Canonical name
  515 </span>results = <span class="d_psymbol">getAddressInfo</span>(<span class="d_string">"www.digitalmars.com"</span>,
  516     AddressInfoFlags.CANONNAME);
  517 <span class="d_keyword">assert</span>(results[0].canonicalName == <span class="d_string">"digitalmars.com"</span>);
  518 
  519 <span class="d_comment">// IPv6 resolution
  520 </span>results = <span class="d_psymbol">getAddressInfo</span>(<span class="d_string">"ipv6.google.com"</span>);
  521 <span class="d_keyword">assert</span>(results[0].family == AddressFamily.INET6);
  522 
  523 <span class="d_comment">// Multihomed resolution
  524 </span>results = <span class="d_psymbol">getAddressInfo</span>(<span class="d_string">"google.com"</span>);
  525 <span class="d_keyword">assert</span>(results.length &gt; 1);
  526 
  527 <span class="d_comment">// Parsing IPv4
  528 </span>results = <span class="d_psymbol">getAddressInfo</span>(<span class="d_string">"127.0.0.1"</span>,
  529     AddressInfoFlags.NUMERICHOST);
  530 <span class="d_keyword">assert</span>(results.length &amp;&amp; results[0].family ==
  531     AddressFamily.INET);
  532 
  533 <span class="d_comment">// Parsing IPv6
  534 </span>results = <span class="d_psymbol">getAddressInfo</span>(<span class="d_string">"::1"</span>,
  535     AddressInfoFlags.NUMERICHOST);
  536 <span class="d_keyword">assert</span>(results.length &amp;&amp; results[0].family ==
  537     AddressFamily.INET6);
  538 </pre>
  539 </p></div>
  540 
  541 </dd>
  542 <dt class="d_decl"><div ><span class="def-anchor" id=".getAddress"></span><div class="quickindex" id="quickindex.getAddress"></div>@safe Address[] <span class="def-anchor" id="getAddress"></span><code class="ddoc_psymbol">getAddress</code>(scope const(char)[] <code class="ddoc_param">hostname</code>, scope const(char)[] <code class="ddoc_param">service</code> = null);
  543 <br><br>@safe Address[] <span class="def-anchor" id="getAddress"></span><code class="ddoc_psymbol">getAddress</code>(scope const(char)[] <code class="ddoc_param">hostname</code>, ushort <code class="ddoc_param">port</code>);
  544 <br></div></dt>
  545 <dd><div class="summary">Provides protocol-independent translation from host names to socket
  546  addresses. Uses <span class="d_inlinecode donthyphenate notranslate">getAddressInfo</span> if the current system supports it,
  547  and <span class="d_inlinecode donthyphenate notranslate">InternetHost</span> otherwise.
  548 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">Array with one <span class="d_inlinecode donthyphenate notranslate">Address</span> instance per socket address.
  549 
  550 </div></div>
  551 <div class="keyval Throws"><span class="key keyThrows">Throws:</span> <div class="val valThrows"><span class="d_inlinecode donthyphenate notranslate">SocketOSException</span> on failure.
  552 
  553 </div></div>
  554 <div class="val"><p class="keyval Section"><span class="key keySection">Example</span>
  555 <pre class="d_code notranslate">writeln(<span class="d_string">"Resolving www.digitalmars.com:"</span>);
  556 <span class="d_keyword">try</span>
  557 {
  558     <span class="d_keyword">auto</span> addresses = <span class="d_psymbol">getAddress</span>(<span class="d_string">"www.digitalmars.com"</span>);
  559     <span class="d_keyword">foreach</span> (address; addresses)
  560         writefln(<span class="d_string">"  IP: %s"</span>, address.toAddrString());
  561 }
  562 <span class="d_keyword">catch</span> (SocketException e)
  563     writefln(<span class="d_string">"  Lookup failed: %s"</span>, e.msg);
  564 </pre>
  565 </p></div>
  566 
  567 </dd>
  568 <dt class="d_decl"><div ><span class="def-anchor" id=".parseAddress"></span><div class="quickindex" id="quickindex.parseAddress"></div>@safe Address <span class="def-anchor" id="parseAddress"></span><code class="ddoc_psymbol">parseAddress</code>(scope const(char)[] <code class="ddoc_param">hostaddr</code>, scope const(char)[] <code class="ddoc_param">service</code> = null);
  569 <br><br>@safe Address <span class="def-anchor" id="parseAddress"></span><code class="ddoc_psymbol">parseAddress</code>(scope const(char)[] <code class="ddoc_param">hostaddr</code>, ushort <code class="ddoc_param">port</code>);
  570 <br></div></dt>
  571 <dd><div class="summary">Provides protocol-independent parsing of network addresses. Does not
  572  attempt name resolution. Uses <span class="d_inlinecode donthyphenate notranslate">getAddressInfo</span> with
  573  <span class="d_inlinecode donthyphenate notranslate">AddressInfoFlags.NUMERICHOST</span> if the current system supports it, and
  574  <span class="d_inlinecode donthyphenate notranslate">InternetAddress</span> otherwise.
  575 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">An <span class="d_inlinecode donthyphenate notranslate">Address</span> instance representing specified address.
  576 
  577 </div></div>
  578 <div class="keyval Throws"><span class="key keyThrows">Throws:</span> <div class="val valThrows"><span class="d_inlinecode donthyphenate notranslate">SocketException</span> on failure.
  579 
  580 </div></div>
  581 <div class="val"><p class="keyval Section"><span class="key keySection">Example</span>
  582 <pre class="d_code notranslate">writeln(<span class="d_string">"Enter IP address:"</span>);
  583 string ip = readln().chomp();
  584 <span class="d_keyword">try</span>
  585 {
  586     Address address = <span class="d_psymbol">parseAddress</span>(ip);
  587     writefln(<span class="d_string">"Looking up reverse of %s:"</span>,
  588         address.toAddrString());
  589     <span class="d_keyword">try</span>
  590     {
  591         string reverse = address.toHostNameString();
  592         <span class="d_keyword">if</span> (reverse)
  593             writefln(<span class="d_string">"  Reverse name: %s"</span>, reverse);
  594         <span class="d_keyword">else</span>
  595             writeln(<span class="d_string">"  Reverse hostname not found."</span>);
  596     }
  597     <span class="d_keyword">catch</span> (SocketException e)
  598         writefln(<span class="d_string">"  Lookup error: %s"</span>, e.msg);
  599 }
  600 <span class="d_keyword">catch</span> (SocketException e)
  601 {
  602     writefln(<span class="d_string">"  %s is not a valid IP address: %s"</span>,
  603         ip, e.msg);
  604 }
  605 </pre>
  606 </p></div>
  607 
  608 </dd>
  609 <dt class="d_decl"><div ><span class="def-anchor" id=".AddressException"></span><div class="quickindex" id="quickindex.AddressException"></div>class <span class="def-anchor" id="AddressException"></span><code class="ddoc_psymbol">AddressException</code>: <span class="ddoc_psuper_symbol">std.socket.SocketOSException</span>;
  610 <br></div></dt>
  611 <dd><div class="summary">Class for exceptions thrown from an <span class="d_inlinecode donthyphenate notranslate">Address</span>.</div>
  612 </dd>
  613 <dt class="d_decl"><div ><span class="def-anchor" id=".Address"></span><div class="quickindex" id="quickindex.Address"></div>abstract class <span class="def-anchor" id="Address"></span><code class="ddoc_psymbol">Address</code>;
  614 <br></div></dt>
  615 <dd><div class="summary"><span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="Address"></span><code class="ddoc_psymbol">Address</code></span> is an abstract class for representing a socket addresses.
  616 </div><div class="val"><p class="keyval Section"><span class="key keySection">Example</span>
  617 <pre class="d_code notranslate">writeln(<span class="d_string">"About www.google.com port 80:"</span>);
  618 <span class="d_keyword">try</span>
  619 {
  620     <span class="d_psymbol">Address</span>[] addresses = getAddress(<span class="d_string">"www.google.com"</span>, 80);
  621     writefln(<span class="d_string">"  %d addresses found."</span>, addresses.length);
  622     <span class="d_keyword">foreach</span> (<span class="d_keyword">int</span> i, <span class="d_psymbol">Address</span> a; addresses)
  623     {
  624         writefln(<span class="d_string">"  Address %d:"</span>, i+1);
  625         writefln(<span class="d_string">"    IP address: %s"</span>, a.toAddrString());
  626         writefln(<span class="d_string">"    Hostname: %s"</span>, a.toHostNameString());
  627         writefln(<span class="d_string">"    Port: %s"</span>, a.toPortString());
  628         writefln(<span class="d_string">"    Service name: %s"</span>,
  629             a.toServiceNameString());
  630     }
  631 }
  632 <span class="d_keyword">catch</span> (SocketException e)
  633     writefln(<span class="d_string">"  Lookup error: %s"</span>, e.msg);
  634 </pre>
  635 </p></div>
  636 
  637 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".Address.name"></span><div class="quickindex" id="quickindex.Address.name"></div>abstract pure nothrow @nogc @property @safe sockaddr* <span class="def-anchor" id="name"></span><code class="ddoc_psymbol">name</code>();
  638 <br><br>abstract const pure nothrow @nogc @property @safe const(sockaddr)* <span class="def-anchor" id="name"></span><code class="ddoc_psymbol">name</code>();
  639 <br></div></dt>
  640 <dd><div class="summary">Returns pointer to underlying <span class="d_inlinecode donthyphenate notranslate">sockaddr</span> structure.</div>
  641 </dd>
  642 <dt class="d_decl"><div ><span class="def-anchor" id=".Address.nameLen"></span><div class="quickindex" id="quickindex.Address.nameLen"></div>abstract const pure nothrow @nogc @property @safe socklen_t <span class="def-anchor" id="nameLen"></span><code class="ddoc_psymbol">nameLen</code>();
  643 <br></div></dt>
  644 <dd><div class="summary">Returns actual size of underlying <span class="d_inlinecode donthyphenate notranslate">sockaddr</span> structure.</div>
  645 </dd>
  646 <dt class="d_decl"><div ><span class="def-anchor" id=".Address.addressFamily"></span><div class="quickindex" id="quickindex.Address.addressFamily"></div>const pure nothrow @nogc @property @safe AddressFamily <span class="def-anchor" id="addressFamily"></span><code class="ddoc_psymbol">addressFamily</code>();
  647 <br></div></dt>
  648 <dd><div class="summary">Family of this address.</div>
  649 </dd>
  650 <dt class="d_decl"><div ><span class="def-anchor" id=".Address.toAddrString"></span><div class="quickindex" id="quickindex.Address.toAddrString"></div>const @safe string <span class="def-anchor" id="toAddrString"></span><code class="ddoc_psymbol">toAddrString</code>();
  651 <br></div></dt>
  652 <dd><div class="summary">Attempts to retrieve the host address as a human-readable string.
  653 </div><div class="keyval Throws"><span class="key keyThrows">Throws:</span> <div class="val valThrows"><span class="d_inlinecode donthyphenate notranslate">AddressException</span> on failure, or <span class="d_inlinecode donthyphenate notranslate">SocketFeatureException</span>
  654  if address retrieval for this address family is not available on the
  655  current system.</div></div>
  656 
  657 </dd>
  658 <dt class="d_decl"><div ><span class="def-anchor" id=".Address.toHostNameString"></span><div class="quickindex" id="quickindex.Address.toHostNameString"></div>const @safe string <span class="def-anchor" id="toHostNameString"></span><code class="ddoc_psymbol">toHostNameString</code>();
  659 <br></div></dt>
  660 <dd><div class="summary">Attempts to retrieve the host name as a fully qualified domain name.
  661 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">The FQDN corresponding to this <span class="d_inlinecode donthyphenate notranslate">Address</span>, or <span class="d_inlinecode donthyphenate notranslate">null</span> if
  662  the host name did not resolve.
  663 
  664 </div></div>
  665 <div class="keyval Throws"><span class="key keyThrows">Throws:</span> <div class="val valThrows"><span class="d_inlinecode donthyphenate notranslate">AddressException</span> on error, or <span class="d_inlinecode donthyphenate notranslate">SocketFeatureException</span>
  666  if host name lookup for this address family is not available on the
  667  current system.</div></div>
  668 
  669 </dd>
  670 <dt class="d_decl"><div ><span class="def-anchor" id=".Address.toPortString"></span><div class="quickindex" id="quickindex.Address.toPortString"></div>const @safe string <span class="def-anchor" id="toPortString"></span><code class="ddoc_psymbol">toPortString</code>();
  671 <br></div></dt>
  672 <dd><div class="summary">Attempts to retrieve the numeric port number as a string.
  673 </div><div class="keyval Throws"><span class="key keyThrows">Throws:</span> <div class="val valThrows"><span class="d_inlinecode donthyphenate notranslate">AddressException</span> on failure, or <span class="d_inlinecode donthyphenate notranslate">SocketFeatureException</span>
  674  if port number retrieval for this address family is not available on the
  675  current system.</div></div>
  676 
  677 </dd>
  678 <dt class="d_decl"><div ><span class="def-anchor" id=".Address.toServiceNameString"></span><div class="quickindex" id="quickindex.Address.toServiceNameString"></div>const @safe string <span class="def-anchor" id="toServiceNameString"></span><code class="ddoc_psymbol">toServiceNameString</code>();
  679 <br></div></dt>
  680 <dd><div class="summary">Attempts to retrieve the service name as a string.
  681 </div><div class="keyval Throws"><span class="key keyThrows">Throws:</span> <div class="val valThrows"><span class="d_inlinecode donthyphenate notranslate">AddressException</span> on failure, or <span class="d_inlinecode donthyphenate notranslate">SocketFeatureException</span>
  682  if service name lookup for this address family is not available on the
  683  current system.</div></div>
  684 
  685 </dd>
  686 <dt class="d_decl"><div ><span class="def-anchor" id=".Address.toString"></span><div class="quickindex" id="quickindex.Address.toString"></div>const @safe string <span class="def-anchor" id="toString"></span><code class="ddoc_psymbol">toString</code>();
  687 <br></div></dt>
  688 <dd><div class="summary">Human readable string representing this address.</div>
  689 </dd>
  690 </dl>
  691 </dd>
  692 <dt class="d_decl"><div ><span class="def-anchor" id=".UnknownAddress"></span><div class="quickindex" id="quickindex.UnknownAddress"></div>class <span class="def-anchor" id="UnknownAddress"></span><code class="ddoc_psymbol">UnknownAddress</code>: <span class="ddoc_psuper_symbol">std.socket.Address</span>;
  693 <br></div></dt>
  694 <dd><div class="summary"><span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="UnknownAddress"></span><code class="ddoc_psymbol">UnknownAddress</code></span> encapsulates an unknown socket address.</div>
  695 </dd>
  696 <dt class="d_decl"><div ><span class="def-anchor" id=".UnknownAddressReference"></span><div class="quickindex" id="quickindex.UnknownAddressReference"></div>class <span class="def-anchor" id="UnknownAddressReference"></span><code class="ddoc_psymbol">UnknownAddressReference</code>: <span class="ddoc_psuper_symbol">std.socket.Address</span>;
  697 <br></div></dt>
  698 <dd><div class="summary"><span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="UnknownAddressReference"></span><code class="ddoc_psymbol">UnknownAddressReference</code></span> encapsulates a reference to an arbitrary
  699  socket address.</div>
  700 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".UnknownAddressReference.this"></span><div class="quickindex" id="quickindex.UnknownAddressReference.this"></div>pure nothrow @nogc @safe this(sockaddr* <code class="ddoc_param">sa</code>, socklen_t <code class="ddoc_param">len</code>);
  701 <br></div></dt>
  702 <dd><div class="summary">Constructs an <span class="d_inlinecode donthyphenate notranslate">Address</span> with a reference to the specified <span class="d_inlinecode donthyphenate notranslate">sockaddr</span>.</div>
  703 </dd>
  704 <dt class="d_decl"><div ><span class="def-anchor" id=".UnknownAddressReference.this.2"></span><div class="quickindex" id="quickindex.UnknownAddressReference.this.2"></div>pure nothrow @system this(const(sockaddr)* <code class="ddoc_param">sa</code>, socklen_t <code class="ddoc_param">len</code>);
  705 <br></div></dt>
  706 <dd><div class="summary">Constructs an <span class="d_inlinecode donthyphenate notranslate">Address</span> with a copy of the specified <span class="d_inlinecode donthyphenate notranslate">sockaddr</span>.</div>
  707 </dd>
  708 </dl>
  709 </dd>
  710 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress"></span><div class="quickindex" id="quickindex.InternetAddress"></div>class <span class="def-anchor" id="InternetAddress"></span><code class="ddoc_psymbol">InternetAddress</code>: <span class="ddoc_psuper_symbol">std.socket.Address</span>;
  711 <br></div></dt>
  712 <dd><div class="summary"><span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="InternetAddress"></span><code class="ddoc_psymbol">InternetAddress</code></span> encapsulates an IPv4 (Internet Protocol version 4)
  713  socket address.
  714 </div><div class="description">Consider using <span class="d_inlinecode donthyphenate notranslate">getAddress</span>, <span class="d_inlinecode donthyphenate notranslate">parseAddress</span> and <span class="d_inlinecode donthyphenate notranslate">Address</span> methods
  715  instead of using this class directly.</div>
  716 
  717 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress.ADDR_ANY"></span><div class="quickindex" id="quickindex.InternetAddress.ADDR_ANY"></div>enum uint <span class="def-anchor" id="ADDR_ANY"></span><code class="ddoc_psymbol">ADDR_ANY</code>;
  718 <br></div></dt>
  719 <dd><div class="summary">Any IPv4 host address.</div>
  720 </dd>
  721 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress.ADDR_NONE"></span><div class="quickindex" id="quickindex.InternetAddress.ADDR_NONE"></div>enum uint <span class="def-anchor" id="ADDR_NONE"></span><code class="ddoc_psymbol">ADDR_NONE</code>;
  722 <br></div></dt>
  723 <dd><div class="summary">An invalid IPv4 host address.</div>
  724 </dd>
  725 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress.PORT_ANY"></span><div class="quickindex" id="quickindex.InternetAddress.PORT_ANY"></div>enum ushort <span class="def-anchor" id="PORT_ANY"></span><code class="ddoc_psymbol">PORT_ANY</code>;
  726 <br></div></dt>
  727 <dd><div class="summary">Any IPv4 port number.</div>
  728 </dd>
  729 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress.port"></span><div class="quickindex" id="quickindex.InternetAddress.port"></div>const pure nothrow @nogc @property @safe ushort <span class="def-anchor" id="port"></span><code class="ddoc_psymbol">port</code>();
  730 <br></div></dt>
  731 <dd><div class="summary">Returns the IPv4 port number (in host byte order).</div>
  732 </dd>
  733 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress.addr"></span><div class="quickindex" id="quickindex.InternetAddress.addr"></div>const pure nothrow @nogc @property @safe uint <span class="def-anchor" id="addr"></span><code class="ddoc_psymbol">addr</code>();
  734 <br></div></dt>
  735 <dd><div class="summary">Returns the IPv4 address number (in host byte order).</div>
  736 </dd>
  737 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress.this"></span><div class="quickindex" id="quickindex.InternetAddress.this"></div>@safe this(scope const(char)[] <code class="ddoc_param">addr</code>, ushort <code class="ddoc_param">port</code>);
  738 <br></div></dt>
  739 <dd><div class="summary">Construct a new <span class="d_inlinecode donthyphenate notranslate">InternetAddress</span>.
  740 </div><div class="keyval Parameters"><span class="key keyParameters">Parameters:</span> <div class="val valParameters"><table class="params"><tr class="param"><td class="param_id">const(char)[] <code class="ddoc_param">addr</code></td>
  741 <td class="param_desc">an IPv4 address string in the dotted-decimal form a.b.c.d,
  742           or a host name which will be resolved using an <span class="d_inlinecode donthyphenate notranslate">InternetHost</span>
  743           object.</td></tr>
  744 <tr class="param"><td class="param_id">ushort <code class="ddoc_param">port</code></td>
  745 <td class="param_desc">port number, may be <span class="d_inlinecode donthyphenate notranslate">PORT_ANY</span>.</td></tr>
  746 </table></div></div>
  747 
  748 </dd>
  749 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress.this.2"></span><div class="quickindex" id="quickindex.InternetAddress.this.2"></div>pure nothrow @nogc @safe this(uint <code class="ddoc_param">addr</code>, ushort <code class="ddoc_param">port</code>);
  750 <br><br>pure nothrow @nogc @safe this(ushort <code class="ddoc_param">port</code>);
  751 <br></div></dt>
  752 <dd><div class="summary">Construct a new <span class="d_inlinecode donthyphenate notranslate">InternetAddress</span>.
  753 </div><div class="keyval Parameters"><span class="key keyParameters">Parameters:</span> <div class="val valParameters"><table class="params"><tr class="param"><td class="param_id">uint <code class="ddoc_param">addr</code></td>
  754 <td class="param_desc">(optional) an IPv4 address in host byte order, may be <span class="d_inlinecode donthyphenate notranslate">ADDR_ANY</span>.</td></tr>
  755 <tr class="param"><td class="param_id">ushort <code class="ddoc_param">port</code></td>
  756 <td class="param_desc">port number, may be <span class="d_inlinecode donthyphenate notranslate">PORT_ANY</span>.</td></tr>
  757 </table></div></div>
  758 
  759 </dd>
  760 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress.this.3"></span><div class="quickindex" id="quickindex.InternetAddress.this.3"></div>pure nothrow @nogc @safe this(sockaddr_in <code class="ddoc_param">addr</code>);
  761 <br></div></dt>
  762 <dd><div class="summary">Construct a new <span class="d_inlinecode donthyphenate notranslate">InternetAddress</span>.
  763 </div><div class="keyval Parameters"><span class="key keyParameters">Parameters:</span> <div class="val valParameters"><table class="params"><tr class="param"><td class="param_id">sockaddr_in <code class="ddoc_param">addr</code></td>
  764 <td class="param_desc">A sockaddr_in as obtained from lower-level API calls such as getifaddrs.</td></tr>
  765 </table></div></div>
  766 
  767 </dd>
  768 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress.toAddrString"></span><div class="quickindex" id="quickindex.InternetAddress.toAddrString"></div>const @trusted string <span class="def-anchor" id="toAddrString"></span><code class="ddoc_psymbol">toAddrString</code>();
  769 <br></div></dt>
  770 <dd><div class="summary">Human readable string representing the IPv4 address in dotted-decimal form.</div>
  771 </dd>
  772 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress.toPortString"></span><div class="quickindex" id="quickindex.InternetAddress.toPortString"></div>const @safe string <span class="def-anchor" id="toPortString"></span><code class="ddoc_psymbol">toPortString</code>();
  773 <br></div></dt>
  774 <dd><div class="summary">Human readable string representing the IPv4 port.</div>
  775 </dd>
  776 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress.toHostNameString"></span><div class="quickindex" id="quickindex.InternetAddress.toHostNameString"></div>const @safe string <span class="def-anchor" id="toHostNameString"></span><code class="ddoc_psymbol">toHostNameString</code>();
  777 <br></div></dt>
  778 <dd><div class="summary">Attempts to retrieve the host name as a fully qualified domain name.
  779 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">The FQDN corresponding to this <span class="d_inlinecode donthyphenate notranslate">InternetAddress</span>, or
  780  <span class="d_inlinecode donthyphenate notranslate">null</span> if the host name did not resolve.
  781 
  782 </div></div>
  783 <div class="keyval Throws"><span class="key keyThrows">Throws:</span> <div class="val valThrows"><span class="d_inlinecode donthyphenate notranslate">AddressException</span> on error.</div></div>
  784 
  785 </dd>
  786 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress.opEquals"></span><div class="quickindex" id="quickindex.InternetAddress.opEquals"></div>const @safe bool <span class="def-anchor" id="opEquals"></span><code class="ddoc_psymbol">opEquals</code>(Object <code class="ddoc_param">o</code>);
  787 <br></div></dt>
  788 <dd><div class="summary">Compares with another InternetAddress of same type for equality
  789 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">true if the InternetAddresses share the same address and
  790  port number.</div></div>
  791 <span class="dlang_runnable"></span><div class="keyval Examples"><span class="key keyExamples">Examples:</span> <div class="val valExamples"><pre class="d_code notranslate"><span class="d_keyword">auto</span> addr1 = <span class="d_keyword">new</span> InternetAddress(<span class="d_string">"127.0.0.1"</span>, 80);
  792 <span class="d_keyword">auto</span> addr2 = <span class="d_keyword">new</span> InternetAddress(<span class="d_string">"127.0.0.2"</span>, 80);
  793 
  794 writeln(addr1); <span class="d_comment">// addr1
  795 </span><span class="d_keyword">assert</span>(addr1 != addr2);
  796 </pre>
  797 </div></div>
  798 
  799 </dd>
  800 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress.parse"></span><div class="quickindex" id="quickindex.InternetAddress.parse"></div>static nothrow @trusted uint <span class="def-anchor" id="parse"></span><code class="ddoc_psymbol">parse</code>(scope const(char)[] <code class="ddoc_param">addr</code>);
  801 <br></div></dt>
  802 <dd><div class="summary">Parse an IPv4 address string in the dotted-decimal form <i>a.b.c.d</i>
  803  and return the number.
  804 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">If the string is not a legitimate IPv4 address,
  805  <span class="d_inlinecode donthyphenate notranslate">ADDR_NONE</span> is returned.</div></div>
  806 
  807 </dd>
  808 <dt class="d_decl"><div ><span class="def-anchor" id=".InternetAddress.addrToString"></span><div class="quickindex" id="quickindex.InternetAddress.addrToString"></div>static nothrow @trusted string <span class="def-anchor" id="addrToString"></span><code class="ddoc_psymbol">addrToString</code>(uint <code class="ddoc_param">addr</code>);
  809 <br></div></dt>
  810 <dd><div class="summary">Convert an IPv4 address number in host byte order to a human readable
  811  string representing the IPv4 address in dotted-decimal form.</div>
  812 </dd>
  813 </dl>
  814 </dd>
  815 <dt class="d_decl"><div ><span class="def-anchor" id=".Internet6Address"></span><div class="quickindex" id="quickindex.Internet6Address"></div>class <span class="def-anchor" id="Internet6Address"></span><code class="ddoc_psymbol">Internet6Address</code>: <span class="ddoc_psuper_symbol">std.socket.Address</span>;
  816 <br></div></dt>
  817 <dd><div class="summary"><span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="Internet6Address"></span><code class="ddoc_psymbol">Internet6Address</code></span> encapsulates an IPv6 (Internet Protocol version 6)
  818  socket address.
  819 </div><div class="description">Consider using <span class="d_inlinecode donthyphenate notranslate">getAddress</span>, <span class="d_inlinecode donthyphenate notranslate">parseAddress</span> and <span class="d_inlinecode donthyphenate notranslate">Address</span> methods
  820  instead of using this class directly.</div>
  821 
  822 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".Internet6Address.ADDR_ANY"></span><div class="quickindex" id="quickindex.Internet6Address.ADDR_ANY"></div>static pure nothrow @nogc @property ref @safe const(ubyte)[16] <span class="def-anchor" id="ADDR_ANY"></span><code class="ddoc_psymbol">ADDR_ANY</code>();
  823 <br></div></dt>
  824 <dd><div class="summary">Any IPv6 host address.</div>
  825 </dd>
  826 <dt class="d_decl"><div ><span class="def-anchor" id=".Internet6Address.PORT_ANY"></span><div class="quickindex" id="quickindex.Internet6Address.PORT_ANY"></div>enum ushort <span class="def-anchor" id="PORT_ANY"></span><code class="ddoc_psymbol">PORT_ANY</code>;
  827 <br></div></dt>
  828 <dd><div class="summary">Any IPv6 port number.</div>
  829 </dd>
  830 <dt class="d_decl"><div ><span class="def-anchor" id=".Internet6Address.port"></span><div class="quickindex" id="quickindex.Internet6Address.port"></div>const pure nothrow @nogc @property @safe ushort <span class="def-anchor" id="port"></span><code class="ddoc_psymbol">port</code>();
  831 <br></div></dt>
  832 <dd><div class="summary">Returns the IPv6 port number.</div>
  833 </dd>
  834 <dt class="d_decl"><div ><span class="def-anchor" id=".Internet6Address.addr"></span><div class="quickindex" id="quickindex.Internet6Address.addr"></div>const pure nothrow @nogc @property @safe ubyte[16] <span class="def-anchor" id="addr"></span><code class="ddoc_psymbol">addr</code>();
  835 <br></div></dt>
  836 <dd><div class="summary">Returns the IPv6 address.</div>
  837 </dd>
  838 <dt class="d_decl"><div ><span class="def-anchor" id=".Internet6Address.this"></span><div class="quickindex" id="quickindex.Internet6Address.this"></div>@trusted this(scope const(char)[] <code class="ddoc_param">addr</code>, scope const(char)[] <code class="ddoc_param">service</code> = null);
  839 <br></div></dt>
  840 <dd><div class="summary">Construct a new <span class="d_inlinecode donthyphenate notranslate">Internet6Address</span>.
  841 </div><div class="keyval Parameters"><span class="key keyParameters">Parameters:</span> <div class="val valParameters"><table class="params"><tr class="param"><td class="param_id">const(char)[] <code class="ddoc_param">addr</code></td>
  842 <td class="param_desc">an IPv6 host address string in the form described in RFC 2373,
  843              or a host name which will be resolved using <span class="d_inlinecode donthyphenate notranslate">getAddressInfo</span>.</td></tr>
  844 <tr class="param"><td class="param_id">const(char)[] <code class="ddoc_param">service</code></td>
  845 <td class="param_desc">(optional) service name.</td></tr>
  846 </table></div></div>
  847 
  848 </dd>
  849 <dt class="d_decl"><div ><span class="def-anchor" id=".Internet6Address.this.2"></span><div class="quickindex" id="quickindex.Internet6Address.this.2"></div>@safe this(scope const(char)[] <code class="ddoc_param">addr</code>, ushort <code class="ddoc_param">port</code>);
  850 <br></div></dt>
  851 <dd><div class="summary">Construct a new <span class="d_inlinecode donthyphenate notranslate">Internet6Address</span>.
  852 </div><div class="keyval Parameters"><span class="key keyParameters">Parameters:</span> <div class="val valParameters"><table class="params"><tr class="param"><td class="param_id">const(char)[] <code class="ddoc_param">addr</code></td>
  853 <td class="param_desc">an IPv6 host address string in the form described in RFC 2373,
  854           or a host name which will be resolved using <span class="d_inlinecode donthyphenate notranslate">getAddressInfo</span>.</td></tr>
  855 <tr class="param"><td class="param_id">ushort <code class="ddoc_param">port</code></td>
  856 <td class="param_desc">port number, may be <span class="d_inlinecode donthyphenate notranslate">PORT_ANY</span>.</td></tr>
  857 </table></div></div>
  858 
  859 </dd>
  860 <dt class="d_decl"><div ><span class="def-anchor" id=".Internet6Address.this.3"></span><div class="quickindex" id="quickindex.Internet6Address.this.3"></div>pure nothrow @nogc @safe this(ubyte[16] <code class="ddoc_param">addr</code>, ushort <code class="ddoc_param">port</code>);
  861 <br><br>pure nothrow @nogc @safe this(ushort <code class="ddoc_param">port</code>);
  862 <br></div></dt>
  863 <dd><div class="summary">Construct a new <span class="d_inlinecode donthyphenate notranslate">Internet6Address</span>.
  864 </div><div class="keyval Parameters"><span class="key keyParameters">Parameters:</span> <div class="val valParameters"><table class="params"><tr class="param"><td class="param_id">ubyte[16] <code class="ddoc_param">addr</code></td>
  865 <td class="param_desc">(optional) an IPv6 host address in host byte order, or
  866           <span class="d_inlinecode donthyphenate notranslate">ADDR_ANY</span>.</td></tr>
  867 <tr class="param"><td class="param_id">ushort <code class="ddoc_param">port</code></td>
  868 <td class="param_desc">port number, may be <span class="d_inlinecode donthyphenate notranslate">PORT_ANY</span>.</td></tr>
  869 </table></div></div>
  870 
  871 </dd>
  872 <dt class="d_decl"><div ><span class="def-anchor" id=".Internet6Address.this.4"></span><div class="quickindex" id="quickindex.Internet6Address.this.4"></div>pure nothrow @nogc @safe this(sockaddr_in6 <code class="ddoc_param">addr</code>);
  873 <br></div></dt>
  874 <dd><div class="summary">Construct a new <span class="d_inlinecode donthyphenate notranslate">Internet6Address</span>.
  875 </div><div class="keyval Parameters"><span class="key keyParameters">Parameters:</span> <div class="val valParameters"><table class="params"><tr class="param"><td class="param_id">sockaddr_in6 <code class="ddoc_param">addr</code></td>
  876 <td class="param_desc">A sockaddr_in6 as obtained from lower-level API calls such as getifaddrs.</td></tr>
  877 </table></div></div>
  878 
  879 </dd>
  880 <dt class="d_decl"><div ><span class="def-anchor" id=".Internet6Address.parse"></span><div class="quickindex" id="quickindex.Internet6Address.parse"></div>static @trusted ubyte[16] <span class="def-anchor" id="parse"></span><code class="ddoc_psymbol">parse</code>(scope const(char)[] <code class="ddoc_param">addr</code>);
  881 <br></div></dt>
  882 <dd><div class="summary">Parse an IPv6 host address string as described in RFC 2373, and return the
  883  address.
  884 </div><div class="keyval Throws"><span class="key keyThrows">Throws:</span> <div class="val valThrows"><span class="d_inlinecode donthyphenate notranslate">SocketException</span> on error.</div></div>
  885 
  886 </dd>
  887 </dl>
  888 </dd>
  889 <dt class="d_decl"><div ><span class="def-anchor" id=".UnixAddress"></span><div class="quickindex" id="quickindex.UnixAddress"></div>class <span class="def-anchor" id="UnixAddress"></span><code class="ddoc_psymbol">UnixAddress</code>: <span class="ddoc_psuper_symbol">std.socket.Address</span>;
  890 <br></div></dt>
  891 <dd><div class="summary"><span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="UnixAddress"></span><code class="ddoc_psymbol">UnixAddress</code></span> encapsulates an address for a Unix domain socket
  892  (<span class="d_inlinecode donthyphenate notranslate">AF_UNIX</span>), i.e. a socket bound to a path name in the file system.
  893  Available only on supported systems.
  894 </div><div class="description">Linux also supports an abstract address namespace, in which addresses
  895  are independent of the file system. A socket address is abstract
  896  iff <span class="d_inlinecode donthyphenate notranslate">path</span> starts with a null byte (<span class="d_inlinecode donthyphenate notranslate">'\0'</span>). Null bytes in other
  897  positions of an abstract address are allowed and have no special
  898  meaning.
  899 
  900 </div>
  901 <div class="val"><p class="keyval Section"><span class="key keySection">Example</span>
  902 <pre class="d_code notranslate"><span class="d_keyword">auto</span> addr = <span class="d_keyword">new</span> <span class="d_psymbol">UnixAddress</span>(<span class="d_string">"/var/run/dbus/system_bus_socket"</span>);
  903 <span class="d_keyword">auto</span> abstractAddr = <span class="d_keyword">new</span> <span class="d_psymbol">UnixAddress</span>(<span class="d_string">"\0/tmp/dbus-OtHLWmCLPR"</span>);
  904 </pre>
  905 
  906 </p></div>
  907 <div class="keyval SeeAlso"><span class="key keySeeAlso">See Also:</span> <div class="val valSeeAlso"><a href="http://http://man7.org/linux/man-pages/man7/unix.7.html">UNIX(7)</a></div></div>
  908 
  909 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".UnixAddress.this"></span><div class="quickindex" id="quickindex.UnixAddress.this"></div>@safe this(scope const(char)[] <code class="ddoc_param">path</code>);
  910 <br></div></dt>
  911 <dd><div class="summary">Construct a new <span class="d_inlinecode donthyphenate notranslate">UnixAddress</span> from the specified path.</div>
  912 </dd>
  913 <dt class="d_decl"><div ><span class="def-anchor" id=".UnixAddress.this.2"></span><div class="quickindex" id="quickindex.UnixAddress.this.2"></div>pure nothrow @nogc @safe this(sockaddr_un <code class="ddoc_param">addr</code>);
  914 <br></div></dt>
  915 <dd><div class="summary">Construct a new <span class="d_inlinecode donthyphenate notranslate">UnixAddress</span>.
  916 </div><div class="keyval Parameters"><span class="key keyParameters">Parameters:</span> <div class="val valParameters"><table class="params"><tr class="param"><td class="param_id">sockaddr_un <code class="ddoc_param">addr</code></td>
  917 <td class="param_desc">A sockaddr_un as obtained from lower-level API calls.</td></tr>
  918 </table></div></div>
  919 
  920 </dd>
  921 <dt class="d_decl"><div ><span class="def-anchor" id=".UnixAddress.path"></span><div class="quickindex" id="quickindex.UnixAddress.path"></div>const @property @safe string <span class="def-anchor" id="path"></span><code class="ddoc_psymbol">path</code>();
  922 <br><br><span class="def-anchor" id=".UnixAddress.toString"></span><div class="quickindex" id="quickindex.UnixAddress.toString"></div>const @safe string <span class="def-anchor" id="toString"></span><code class="ddoc_psymbol">toString</code>();
  923 <br></div></dt>
  924 <dd><div class="summary">Get the underlying path.</div>
  925 </dd>
  926 </dl>
  927 </dd>
  928 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketAcceptException"></span><div class="quickindex" id="quickindex.SocketAcceptException"></div>class <span class="def-anchor" id="SocketAcceptException"></span><code class="ddoc_psymbol">SocketAcceptException</code>: <span class="ddoc_psuper_symbol">std.socket.SocketOSException</span>;
  929 <br></div></dt>
  930 <dd><div class="summary">Class for exceptions thrown by <span class="d_inlinecode donthyphenate notranslate">Socket.accept</span>.</div>
  931 </dd>
  932 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketShutdown"></span><div class="quickindex" id="quickindex.SocketShutdown"></div>enum <span class="def-anchor" id="SocketShutdown"></span><code class="ddoc_psymbol">SocketShutdown</code>: int;
  933 <br></div></dt>
  934 <dd><div class="summary">How a socket is shutdown:</div>
  935 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".SocketShutdown.RECEIVE"></span><div class="quickindex" id="quickindex.SocketShutdown.RECEIVE"></div><span class="def-anchor" id="RECEIVE"></span><code class="ddoc_psymbol">RECEIVE</code><br></div></dt>
  936 <dd><div class="summary">socket receives are disallowed</div>
  937 </dd>
  938 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketShutdown.SEND"></span><div class="quickindex" id="quickindex.SocketShutdown.SEND"></div><span class="def-anchor" id="SEND"></span><code class="ddoc_psymbol">SEND</code><br></div></dt>
  939 <dd><div class="summary">socket sends are disallowed</div>
  940 </dd>
  941 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketShutdown.BOTH"></span><div class="quickindex" id="quickindex.SocketShutdown.BOTH"></div><span class="def-anchor" id="BOTH"></span><code class="ddoc_psymbol">BOTH</code><br></div></dt>
  942 <dd><div class="summary">both RECEIVE and SEND</div>
  943 </dd>
  944 </dl>
  945 </dd>
  946 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketFlags"></span><div class="quickindex" id="quickindex.SocketFlags"></div>enum <span class="def-anchor" id="SocketFlags"></span><code class="ddoc_psymbol">SocketFlags</code>: int;
  947 <br></div></dt>
  948 <dd><div class="summary">Flags may be OR'ed together:</div>
  949 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".SocketFlags.NONE"></span><div class="quickindex" id="quickindex.SocketFlags.NONE"></div><span class="def-anchor" id="NONE"></span><code class="ddoc_psymbol">NONE</code><br></div></dt>
  950 <dd><div class="summary">no flags specified</div>
  951 </dd>
  952 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketFlags.OOB"></span><div class="quickindex" id="quickindex.SocketFlags.OOB"></div><span class="def-anchor" id="OOB"></span><code class="ddoc_psymbol">OOB</code><br></div></dt>
  953 <dd><div class="summary">out-of-band stream data</div>
  954 </dd>
  955 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketFlags.PEEK"></span><div class="quickindex" id="quickindex.SocketFlags.PEEK"></div><span class="def-anchor" id="PEEK"></span><code class="ddoc_psymbol">PEEK</code><br></div></dt>
  956 <dd><div class="summary">peek at incoming data without removing it from the queue, only for receiving</div>
  957 </dd>
  958 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketFlags.DONTROUTE"></span><div class="quickindex" id="quickindex.SocketFlags.DONTROUTE"></div><span class="def-anchor" id="DONTROUTE"></span><code class="ddoc_psymbol">DONTROUTE</code><br></div></dt>
  959 <dd><div class="summary">data should not be subject to routing; this flag may be ignored. Only for sending</div>
  960 </dd>
  961 </dl>
  962 </dd>
  963 <dt class="d_decl"><div ><span class="def-anchor" id=".TimeVal"></span><div class="quickindex" id="quickindex.TimeVal"></div>struct <span class="def-anchor" id="TimeVal"></span><code class="ddoc_psymbol">TimeVal</code>;
  964 <br></div></dt>
  965 <dd><div class="summary">Duration timeout value.</div>
  966 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".TimeVal.seconds"></span><div class="quickindex" id="quickindex.TimeVal.seconds"></div>tv_sec_t <span class="def-anchor" id="seconds"></span><code class="ddoc_psymbol">seconds</code>;
  967 <br></div></dt>
  968 <dd><div class="summary">Number of seconds.</div>
  969 </dd>
  970 <dt class="d_decl"><div ><span class="def-anchor" id=".TimeVal.microseconds"></span><div class="quickindex" id="quickindex.TimeVal.microseconds"></div>tv_usec_t <span class="def-anchor" id="microseconds"></span><code class="ddoc_psymbol">microseconds</code>;
  971 <br></div></dt>
  972 <dd><div class="summary">Number of additional microseconds.</div>
  973 </dd>
  974 </dl>
  975 </dd>
  976 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketSet"></span><div class="quickindex" id="quickindex.SocketSet"></div>class <span class="def-anchor" id="SocketSet"></span><code class="ddoc_psymbol">SocketSet</code>;
  977 <br></div></dt>
  978 <dd><div class="summary">A collection of sockets for use with <span class="d_inlinecode donthyphenate notranslate">Socket.select</span>.
  979 </div><div class="description"><span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="SocketSet"></span><code class="ddoc_psymbol">SocketSet</code></span> wraps the platform <span class="d_inlinecode donthyphenate notranslate">fd_set</span> type. However, unlike
  980  <span class="d_inlinecode donthyphenate notranslate">fd_set</span>, <span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="SocketSet"></span><code class="ddoc_psymbol">SocketSet</code></span> is not statically limited to <span class="d_inlinecode donthyphenate notranslate">FD_SETSIZE</span>
  981  or any other limit, and grows as needed.</div>
  982 
  983 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".SocketSet.this"></span><div class="quickindex" id="quickindex.SocketSet.this"></div>pure nothrow @safe this(size_t <code class="ddoc_param">size</code> = FD_SETSIZE);
  984 <br></div></dt>
  985 <dd><div class="summary">Create a SocketSet with a specific initial capacity (defaults to
  986  <span class="d_inlinecode donthyphenate notranslate">FD_SETSIZE</span>, the system's default capacity).</div>
  987 </dd>
  988 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketSet.reset"></span><div class="quickindex" id="quickindex.SocketSet.reset"></div>pure nothrow @nogc @safe void <span class="def-anchor" id="reset"></span><code class="ddoc_psymbol">reset</code>();
  989 <br></div></dt>
  990 <dd><div class="summary">Reset the <span class="d_inlinecode donthyphenate notranslate">SocketSet</span> so that there are 0 <span class="d_inlinecode donthyphenate notranslate">Socket</span>s in the collection.</div>
  991 </dd>
  992 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketSet.add"></span><div class="quickindex" id="quickindex.SocketSet.add"></div>pure nothrow @safe void <span class="def-anchor" id="add"></span><code class="ddoc_psymbol">add</code>(Socket <code class="ddoc_param">s</code>);
  993 <br></div></dt>
  994 <dd><div class="summary">Add a <span class="d_inlinecode donthyphenate notranslate">Socket</span> to the collection.
  995  The socket must not already be in the collection.</div>
  996 </dd>
  997 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketSet.remove"></span><div class="quickindex" id="quickindex.SocketSet.remove"></div>pure nothrow @safe void <span class="def-anchor" id="remove"></span><code class="ddoc_psymbol">remove</code>(Socket <code class="ddoc_param">s</code>);
  998 <br></div></dt>
  999 <dd><div class="summary">Remove this <span class="d_inlinecode donthyphenate notranslate">Socket</span> from the collection.
 1000  Does nothing if the socket is not in the collection already.</div>
 1001 </dd>
 1002 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketSet.isSet"></span><div class="quickindex" id="quickindex.SocketSet.isSet"></div>const pure nothrow @nogc @safe int <span class="def-anchor" id="isSet"></span><code class="ddoc_psymbol">isSet</code>(Socket <code class="ddoc_param">s</code>);
 1003 <br></div></dt>
 1004 <dd><div class="summary">Return nonzero if this <span class="d_inlinecode donthyphenate notranslate">Socket</span> is in the collection.</div>
 1005 </dd>
 1006 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketSet.max"></span><div class="quickindex" id="quickindex.SocketSet.max"></div>const pure nothrow @nogc @property @safe uint <span class="def-anchor" id="max"></span><code class="ddoc_psymbol">max</code>();
 1007 <br></div></dt>
 1008 <dd><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">The current capacity of this <span class="d_inlinecode donthyphenate notranslate">SocketSet</span>. The exact
 1009  meaning of the return value varies from platform to platform.
 1010 
 1011 </div></div>
 1012 <div class="val"><p class="keyval Section"><span class="key keySection">Note</span>
 1013 Since D 2.065, this value does not indicate a
 1014  restriction, and <span class="d_inlinecode donthyphenate notranslate">SocketSet</span> will grow its capacity as
 1015  needed automatically.</p></div>
 1016 
 1017 </dd>
 1018 </dl>
 1019 </dd>
 1020 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOptionLevel"></span><div class="quickindex" id="quickindex.SocketOptionLevel"></div>enum <span class="def-anchor" id="SocketOptionLevel"></span><code class="ddoc_psymbol">SocketOptionLevel</code>: int;
 1021 <br></div></dt>
 1022 <dd><div class="summary">The level at which a socket option is defined:</div>
 1023 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".SocketOptionLevel.SOCKET"></span><div class="quickindex" id="quickindex.SocketOptionLevel.SOCKET"></div><span class="def-anchor" id="SOCKET"></span><code class="ddoc_psymbol">SOCKET</code><br></div></dt>
 1024 <dd><div class="summary">Socket level</div>
 1025 </dd>
 1026 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOptionLevel.IP"></span><div class="quickindex" id="quickindex.SocketOptionLevel.IP"></div><span class="def-anchor" id="IP"></span><code class="ddoc_psymbol">IP</code><br></div></dt>
 1027 <dd><div class="summary">Internet Protocol version 4 level</div>
 1028 </dd>
 1029 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOptionLevel.ICMP"></span><div class="quickindex" id="quickindex.SocketOptionLevel.ICMP"></div><span class="def-anchor" id="ICMP"></span><code class="ddoc_psymbol">ICMP</code><br></div></dt>
 1030 <dd><div class="summary">Internet Control Message Protocol level</div>
 1031 </dd>
 1032 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOptionLevel.IGMP"></span><div class="quickindex" id="quickindex.SocketOptionLevel.IGMP"></div><span class="def-anchor" id="IGMP"></span><code class="ddoc_psymbol">IGMP</code><br></div></dt>
 1033 <dd><div class="summary">Internet Group Management Protocol level</div>
 1034 </dd>
 1035 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOptionLevel.GGP"></span><div class="quickindex" id="quickindex.SocketOptionLevel.GGP"></div><span class="def-anchor" id="GGP"></span><code class="ddoc_psymbol">GGP</code><br></div></dt>
 1036 <dd><div class="summary">Gateway to Gateway Protocol level</div>
 1037 </dd>
 1038 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOptionLevel.TCP"></span><div class="quickindex" id="quickindex.SocketOptionLevel.TCP"></div><span class="def-anchor" id="TCP"></span><code class="ddoc_psymbol">TCP</code><br></div></dt>
 1039 <dd><div class="summary">Transmission Control Protocol level</div>
 1040 </dd>
 1041 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOptionLevel.PUP"></span><div class="quickindex" id="quickindex.SocketOptionLevel.PUP"></div><span class="def-anchor" id="PUP"></span><code class="ddoc_psymbol">PUP</code><br></div></dt>
 1042 <dd><div class="summary">PARC Universal Packet Protocol level</div>
 1043 </dd>
 1044 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOptionLevel.UDP"></span><div class="quickindex" id="quickindex.SocketOptionLevel.UDP"></div><span class="def-anchor" id="UDP"></span><code class="ddoc_psymbol">UDP</code><br></div></dt>
 1045 <dd><div class="summary">User Datagram Protocol level</div>
 1046 </dd>
 1047 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOptionLevel.IDP"></span><div class="quickindex" id="quickindex.SocketOptionLevel.IDP"></div><span class="def-anchor" id="IDP"></span><code class="ddoc_psymbol">IDP</code><br></div></dt>
 1048 <dd><div class="summary">Xerox NS protocol level</div>
 1049 </dd>
 1050 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOptionLevel.RAW"></span><div class="quickindex" id="quickindex.SocketOptionLevel.RAW"></div><span class="def-anchor" id="RAW"></span><code class="ddoc_psymbol">RAW</code><br></div></dt>
 1051 <dd><div class="summary">Raw IP packet level</div>
 1052 </dd>
 1053 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOptionLevel.IPV6"></span><div class="quickindex" id="quickindex.SocketOptionLevel.IPV6"></div><span class="def-anchor" id="IPV6"></span><code class="ddoc_psymbol">IPV6</code><br></div></dt>
 1054 <dd><div class="summary">Internet Protocol version 6 level</div>
 1055 </dd>
 1056 </dl>
 1057 </dd>
 1058 <dt class="d_decl"><div ><span class="def-anchor" id=".Linger"></span><div class="quickindex" id="quickindex.Linger"></div>struct <span class="def-anchor" id="Linger"></span><code class="ddoc_psymbol">Linger</code>;
 1059 <br></div></dt>
 1060 <dd><div class="summary">Linger information for use with SocketOption.LINGER.</div>
 1061 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".Linger.on"></span><div class="quickindex" id="quickindex.Linger.on"></div>l_onoff_t <span class="def-anchor" id="on"></span><code class="ddoc_psymbol">on</code>;
 1062 <br></div></dt>
 1063 <dd><div class="summary">Nonzero for on.</div>
 1064 </dd>
 1065 <dt class="d_decl"><div ><span class="def-anchor" id=".Linger.time"></span><div class="quickindex" id="quickindex.Linger.time"></div>l_linger_t <span class="def-anchor" id="time"></span><code class="ddoc_psymbol">time</code>;
 1066 <br></div></dt>
 1067 <dd><div class="summary">Linger time.</div>
 1068 </dd>
 1069 </dl>
 1070 </dd>
 1071 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption"></span><div class="quickindex" id="quickindex.SocketOption"></div>enum <span class="def-anchor" id="SocketOption"></span><code class="ddoc_psymbol">SocketOption</code>: int;
 1072 <br></div></dt>
 1073 <dd><div class="summary">Specifies a socket option:</div>
 1074 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.DEBUG"></span><div class="quickindex" id="quickindex.SocketOption.DEBUG"></div><span class="def-anchor" id="DEBUG"></span><code class="ddoc_psymbol">DEBUG</code><br></div></dt>
 1075 <dd><div class="summary">Record debugging information</div>
 1076 </dd>
 1077 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.BROADCAST"></span><div class="quickindex" id="quickindex.SocketOption.BROADCAST"></div><span class="def-anchor" id="BROADCAST"></span><code class="ddoc_psymbol">BROADCAST</code><br></div></dt>
 1078 <dd><div class="summary">Allow transmission of broadcast messages</div>
 1079 </dd>
 1080 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.REUSEADDR"></span><div class="quickindex" id="quickindex.SocketOption.REUSEADDR"></div><span class="def-anchor" id="REUSEADDR"></span><code class="ddoc_psymbol">REUSEADDR</code><br></div></dt>
 1081 <dd><div class="summary">Allow local reuse of address</div>
 1082 </dd>
 1083 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.LINGER"></span><div class="quickindex" id="quickindex.SocketOption.LINGER"></div><span class="def-anchor" id="LINGER"></span><code class="ddoc_psymbol">LINGER</code><br></div></dt>
 1084 <dd><div class="summary">Linger on close if unsent data is present</div>
 1085 </dd>
 1086 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.OOBINLINE"></span><div class="quickindex" id="quickindex.SocketOption.OOBINLINE"></div><span class="def-anchor" id="OOBINLINE"></span><code class="ddoc_psymbol">OOBINLINE</code><br></div></dt>
 1087 <dd><div class="summary">Receive out-of-band data in band</div>
 1088 </dd>
 1089 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.SNDBUF"></span><div class="quickindex" id="quickindex.SocketOption.SNDBUF"></div><span class="def-anchor" id="SNDBUF"></span><code class="ddoc_psymbol">SNDBUF</code><br></div></dt>
 1090 <dd><div class="summary">Send buffer size</div>
 1091 </dd>
 1092 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.RCVBUF"></span><div class="quickindex" id="quickindex.SocketOption.RCVBUF"></div><span class="def-anchor" id="RCVBUF"></span><code class="ddoc_psymbol">RCVBUF</code><br></div></dt>
 1093 <dd><div class="summary">Receive buffer size</div>
 1094 </dd>
 1095 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.DONTROUTE"></span><div class="quickindex" id="quickindex.SocketOption.DONTROUTE"></div><span class="def-anchor" id="DONTROUTE"></span><code class="ddoc_psymbol">DONTROUTE</code><br></div></dt>
 1096 <dd><div class="summary">Do not route</div>
 1097 </dd>
 1098 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.SNDTIMEO"></span><div class="quickindex" id="quickindex.SocketOption.SNDTIMEO"></div><span class="def-anchor" id="SNDTIMEO"></span><code class="ddoc_psymbol">SNDTIMEO</code><br></div></dt>
 1099 <dd><div class="summary">Send timeout</div>
 1100 </dd>
 1101 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.RCVTIMEO"></span><div class="quickindex" id="quickindex.SocketOption.RCVTIMEO"></div><span class="def-anchor" id="RCVTIMEO"></span><code class="ddoc_psymbol">RCVTIMEO</code><br></div></dt>
 1102 <dd><div class="summary">Receive timeout</div>
 1103 </dd>
 1104 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.ERROR"></span><div class="quickindex" id="quickindex.SocketOption.ERROR"></div><span class="def-anchor" id="ERROR"></span><code class="ddoc_psymbol">ERROR</code><br></div></dt>
 1105 <dd><div class="summary">Retrieve and clear error status</div>
 1106 </dd>
 1107 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.KEEPALIVE"></span><div class="quickindex" id="quickindex.SocketOption.KEEPALIVE"></div><span class="def-anchor" id="KEEPALIVE"></span><code class="ddoc_psymbol">KEEPALIVE</code><br></div></dt>
 1108 <dd><div class="summary">Enable keep-alive packets</div>
 1109 </dd>
 1110 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.ACCEPTCONN"></span><div class="quickindex" id="quickindex.SocketOption.ACCEPTCONN"></div><span class="def-anchor" id="ACCEPTCONN"></span><code class="ddoc_psymbol">ACCEPTCONN</code><br></div></dt>
 1111 <dd><div class="summary">Listen</div>
 1112 </dd>
 1113 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.RCVLOWAT"></span><div class="quickindex" id="quickindex.SocketOption.RCVLOWAT"></div><span class="def-anchor" id="RCVLOWAT"></span><code class="ddoc_psymbol">RCVLOWAT</code><br></div></dt>
 1114 <dd><div class="summary">Minimum number of input bytes to process</div>
 1115 </dd>
 1116 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.SNDLOWAT"></span><div class="quickindex" id="quickindex.SocketOption.SNDLOWAT"></div><span class="def-anchor" id="SNDLOWAT"></span><code class="ddoc_psymbol">SNDLOWAT</code><br></div></dt>
 1117 <dd><div class="summary">Minimum number of output bytes to process</div>
 1118 </dd>
 1119 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.TYPE"></span><div class="quickindex" id="quickindex.SocketOption.TYPE"></div><span class="def-anchor" id="TYPE"></span><code class="ddoc_psymbol">TYPE</code><br></div></dt>
 1120 <dd><div class="summary">Socket type</div>
 1121 </dd>
 1122 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.TCP_NODELAY"></span><div class="quickindex" id="quickindex.SocketOption.TCP_NODELAY"></div><span class="def-anchor" id="TCP_NODELAY"></span><code class="ddoc_psymbol">TCP_NODELAY</code><br></div></dt>
 1123 <dd><div class="summary">Disable the Nagle algorithm for send coalescing</div>
 1124 </dd>
 1125 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.IPV6_UNICAST_HOPS"></span><div class="quickindex" id="quickindex.SocketOption.IPV6_UNICAST_HOPS"></div><span class="def-anchor" id="IPV6_UNICAST_HOPS"></span><code class="ddoc_psymbol">IPV6_UNICAST_HOPS</code><br></div></dt>
 1126 <dd><div class="summary">IP unicast hop limit</div>
 1127 </dd>
 1128 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.IPV6_MULTICAST_IF"></span><div class="quickindex" id="quickindex.SocketOption.IPV6_MULTICAST_IF"></div><span class="def-anchor" id="IPV6_MULTICAST_IF"></span><code class="ddoc_psymbol">IPV6_MULTICAST_IF</code><br></div></dt>
 1129 <dd><div class="summary">IP multicast interface</div>
 1130 </dd>
 1131 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.IPV6_MULTICAST_LOOP"></span><div class="quickindex" id="quickindex.SocketOption.IPV6_MULTICAST_LOOP"></div><span class="def-anchor" id="IPV6_MULTICAST_LOOP"></span><code class="ddoc_psymbol">IPV6_MULTICAST_LOOP</code><br></div></dt>
 1132 <dd><div class="summary">IP multicast loopback</div>
 1133 </dd>
 1134 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.IPV6_MULTICAST_HOPS"></span><div class="quickindex" id="quickindex.SocketOption.IPV6_MULTICAST_HOPS"></div><span class="def-anchor" id="IPV6_MULTICAST_HOPS"></span><code class="ddoc_psymbol">IPV6_MULTICAST_HOPS</code><br></div></dt>
 1135 <dd><div class="summary">IP multicast hops</div>
 1136 </dd>
 1137 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.IPV6_JOIN_GROUP"></span><div class="quickindex" id="quickindex.SocketOption.IPV6_JOIN_GROUP"></div><span class="def-anchor" id="IPV6_JOIN_GROUP"></span><code class="ddoc_psymbol">IPV6_JOIN_GROUP</code><br></div></dt>
 1138 <dd><div class="summary">Add an IP group membership</div>
 1139 </dd>
 1140 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.IPV6_LEAVE_GROUP"></span><div class="quickindex" id="quickindex.SocketOption.IPV6_LEAVE_GROUP"></div><span class="def-anchor" id="IPV6_LEAVE_GROUP"></span><code class="ddoc_psymbol">IPV6_LEAVE_GROUP</code><br></div></dt>
 1141 <dd><div class="summary">Drop an IP group membership</div>
 1142 </dd>
 1143 <dt class="d_decl"><div ><span class="def-anchor" id=".SocketOption.IPV6_V6ONLY"></span><div class="quickindex" id="quickindex.SocketOption.IPV6_V6ONLY"></div><span class="def-anchor" id="IPV6_V6ONLY"></span><code class="ddoc_psymbol">IPV6_V6ONLY</code><br></div></dt>
 1144 <dd><div class="summary">Treat wildcard bind as AF_INET6-only</div>
 1145 </dd>
 1146 </dl>
 1147 </dd>
 1148 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket"></span><div class="quickindex" id="quickindex.Socket"></div>class <span class="def-anchor" id="Socket"></span><code class="ddoc_psymbol">Socket</code>;
 1149 <br></div></dt>
 1150 <dd><div class="summary"><span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="Socket"></span><code class="ddoc_psymbol">Socket</code></span> is a class that creates a network communication endpoint using
 1151  the Berkeley sockets interface.</div>
 1152 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".Socket.this"></span><div class="quickindex" id="quickindex.Socket.this"></div>@trusted this(AddressFamily <code class="ddoc_param">af</code>, SocketType <code class="ddoc_param">type</code>, ProtocolType <code class="ddoc_param">protocol</code>);
 1153 <br><br>@safe this(AddressFamily <code class="ddoc_param">af</code>, SocketType <code class="ddoc_param">type</code>);
 1154 <br><br>@trusted this(AddressFamily <code class="ddoc_param">af</code>, SocketType <code class="ddoc_param">type</code>, scope const(char)[] <code class="ddoc_param">protocolName</code>);
 1155 <br></div></dt>
 1156 <dd><div class="summary">Create a blocking socket. If a single protocol type exists to support
 1157  this socket type within the address family, the <span class="d_inlinecode donthyphenate notranslate">ProtocolType</span> may be
 1158  omitted.</div>
 1159 </dd>
 1160 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.this.2"></span><div class="quickindex" id="quickindex.Socket.this.2"></div>@safe this(scope const AddressInfo <code class="ddoc_param">info</code>);
 1161 <br></div></dt>
 1162 <dd><div class="summary">Create a blocking socket using the parameters from the specified
 1163  <span class="d_inlinecode donthyphenate notranslate">AddressInfo</span> structure.</div>
 1164 </dd>
 1165 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.this.3"></span><div class="quickindex" id="quickindex.Socket.this.3"></div>pure nothrow @nogc @safe this(socket_t <code class="ddoc_param">sock</code>, AddressFamily <code class="ddoc_param">af</code>);
 1166 <br></div></dt>
 1167 <dd><div class="summary">Use an existing socket handle.</div>
 1168 </dd>
 1169 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.handle"></span><div class="quickindex" id="quickindex.Socket.handle"></div>const pure nothrow @nogc @property @safe socket_t <span class="def-anchor" id="handle"></span><code class="ddoc_psymbol">handle</code>();
 1170 <br></div></dt>
 1171 <dd><div class="summary">Get underlying socket handle.</div>
 1172 </dd>
 1173 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.blocking"></span><div class="quickindex" id="quickindex.Socket.blocking"></div>const nothrow @nogc @property @trusted bool <span class="def-anchor" id="blocking"></span><code class="ddoc_psymbol">blocking</code>();
 1174 <br><br>@property @trusted void <span class="def-anchor" id="blocking"></span><code class="ddoc_psymbol">blocking</code>(bool <code class="ddoc_param">byes</code>);
 1175 <br></div></dt>
 1176 <dd><div class="summary">Get/set socket's blocking flag.
 1177 </div><div class="description">When a socket is blocking, calls to receive(), accept(), and send()
 1178  will block and wait for data/action.
 1179  A non-blocking socket will immediately return instead of blocking.</div>
 1180 
 1181 </dd>
 1182 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.addressFamily"></span><div class="quickindex" id="quickindex.Socket.addressFamily"></div>@property @safe AddressFamily <span class="def-anchor" id="addressFamily"></span><code class="ddoc_psymbol">addressFamily</code>();
 1183 <br></div></dt>
 1184 <dd><div class="summary">Get the socket's address family.</div>
 1185 </dd>
 1186 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.isAlive"></span><div class="quickindex" id="quickindex.Socket.isAlive"></div>const @property @trusted bool <span class="def-anchor" id="isAlive"></span><code class="ddoc_psymbol">isAlive</code>();
 1187 <br></div></dt>
 1188 <dd><div class="summary">Property that indicates if this is a valid, alive socket.</div>
 1189 </dd>
 1190 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.bind"></span><div class="quickindex" id="quickindex.Socket.bind"></div>@trusted void <span class="def-anchor" id="bind"></span><code class="ddoc_psymbol">bind</code>(Address <code class="ddoc_param">addr</code>);
 1191 <br></div></dt>
 1192 <dd><div class="summary">Associate a local address with this socket.
 1193 </div><div class="keyval Parameters"><span class="key keyParameters">Parameters:</span> <div class="val valParameters"><table class="params"><tr class="param"><td class="param_id">Address <code class="ddoc_param">addr</code></td>
 1194 <td class="param_desc">The <a href="#Address"><span class="d_inlinecode donthyphenate notranslate">Address</span></a> to associate this socket with.</td></tr>
 1195 </table></div></div>
 1196 <div class="keyval Throws"><span class="key keyThrows">Throws:</span> <div class="val valThrows"><a href="#SocketOSException"><span class="d_inlinecode donthyphenate notranslate">SocketOSException</span></a> when unable to bind the socket.</div></div>
 1197 
 1198 </dd>
 1199 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.connect"></span><div class="quickindex" id="quickindex.Socket.connect"></div>@trusted void <span class="def-anchor" id="connect"></span><code class="ddoc_psymbol">connect</code>(Address <code class="ddoc_param">to</code>);
 1200 <br></div></dt>
 1201 <dd><div class="summary">Establish a connection. If the socket is blocking, connect waits for
 1202  the connection to be made. If the socket is nonblocking, connect
 1203  returns immediately and the connection attempt is still in progress.</div>
 1204 </dd>
 1205 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.listen"></span><div class="quickindex" id="quickindex.Socket.listen"></div>@trusted void <span class="def-anchor" id="listen"></span><code class="ddoc_psymbol">listen</code>(int <code class="ddoc_param">backlog</code>);
 1206 <br></div></dt>
 1207 <dd><div class="summary">Listen for an incoming connection. <span class="d_inlinecode donthyphenate notranslate">bind</span> must be called before you
 1208  can <span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="listen"></span><code class="ddoc_psymbol">listen</code></span>. The <span class="d_inlinecode donthyphenate notranslate"><code class="ddoc_param">backlog</code></span> is a request of how many pending
 1209  incoming connections are queued until <span class="d_inlinecode donthyphenate notranslate">accept</span>ed.</div>
 1210 </dd>
 1211 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.accepting"></span><div class="quickindex" id="quickindex.Socket.accepting"></div>protected pure nothrow @safe Socket <span class="def-anchor" id="accepting"></span><code class="ddoc_psymbol">accepting</code>();
 1212 <br></div></dt>
 1213 <dd><div class="summary">Called by <span class="d_inlinecode donthyphenate notranslate">accept</span> when a new <span class="d_inlinecode donthyphenate notranslate">Socket</span> must be created for a new
 1214  connection. To use a derived class, override this method and return an
 1215  instance of your class. The returned <span class="d_inlinecode donthyphenate notranslate">Socket</span>'s handle must not be
 1216  set; <span class="d_inlinecode donthyphenate notranslate">Socket</span> has a protected constructor <span class="d_inlinecode donthyphenate notranslate">this()</span> to use in this
 1217  situation.
 1218 </div><div class="description">Override to use a derived class.
 1219  The returned socket's handle must not be set.</div>
 1220 
 1221 </dd>
 1222 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.accept"></span><div class="quickindex" id="quickindex.Socket.accept"></div>@trusted Socket <span class="def-anchor" id="accept"></span><code class="ddoc_psymbol">accept</code>();
 1223 <br></div></dt>
 1224 <dd><div class="summary">Accept an incoming connection. If the socket is blocking, <span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="accept"></span><code class="ddoc_psymbol">accept</code></span>
 1225  waits for a connection request. Throws <span class="d_inlinecode donthyphenate notranslate">SocketAcceptException</span> if
 1226  unable to accept. See <span class="d_inlinecode donthyphenate notranslate">accepting</span> for use with derived classes.</div>
 1227 </dd>
 1228 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.shutdown"></span><div class="quickindex" id="quickindex.Socket.shutdown"></div>nothrow @nogc @trusted void <span class="def-anchor" id="shutdown"></span><code class="ddoc_psymbol">shutdown</code>(SocketShutdown <code class="ddoc_param">how</code>);
 1229 <br></div></dt>
 1230 <dd><div class="summary">Disables sends and/or receives.</div>
 1231 </dd>
 1232 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.close"></span><div class="quickindex" id="quickindex.Socket.close"></div>nothrow @nogc @trusted void <span class="def-anchor" id="close"></span><code class="ddoc_psymbol">close</code>();
 1233 <br></div></dt>
 1234 <dd><div class="summary">Immediately drop any connections and release socket resources.
 1235  The <span class="d_inlinecode donthyphenate notranslate">Socket</span> object is no longer usable after <span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="close"></span><code class="ddoc_psymbol">close</code></span>.
 1236  Calling <span class="d_inlinecode donthyphenate notranslate">shutdown</span> before <span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="close"></span><code class="ddoc_psymbol">close</code></span> is recommended
 1237  for connection-oriented sockets.</div>
 1238 </dd>
 1239 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.hostName"></span><div class="quickindex" id="quickindex.Socket.hostName"></div>static @property @trusted string <span class="def-anchor" id="hostName"></span><code class="ddoc_psymbol">hostName</code>();
 1240 <br></div></dt>
 1241 <dd><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">the local machine's host name</div></div>
 1242 
 1243 </dd>
 1244 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.remoteAddress"></span><div class="quickindex" id="quickindex.Socket.remoteAddress"></div>@property @trusted Address <span class="def-anchor" id="remoteAddress"></span><code class="ddoc_psymbol">remoteAddress</code>();
 1245 <br></div></dt>
 1246 <dd><div class="summary">Remote endpoint <span class="d_inlinecode donthyphenate notranslate">Address</span>.</div>
 1247 </dd>
 1248 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.localAddress"></span><div class="quickindex" id="quickindex.Socket.localAddress"></div>@property @trusted Address <span class="def-anchor" id="localAddress"></span><code class="ddoc_psymbol">localAddress</code>();
 1249 <br></div></dt>
 1250 <dd><div class="summary">Local endpoint <span class="d_inlinecode donthyphenate notranslate">Address</span>.</div>
 1251 </dd>
 1252 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.ERROR"></span><div class="quickindex" id="quickindex.Socket.ERROR"></div>enum int <span class="def-anchor" id="ERROR"></span><code class="ddoc_psymbol">ERROR</code>;
 1253 <br></div></dt>
 1254 <dd><div class="summary">Send or receive error code. See <span class="d_inlinecode donthyphenate notranslate">wouldHaveBlocked</span>,
 1255  <span class="d_inlinecode donthyphenate notranslate">lastSocketError</span> and <span class="d_inlinecode donthyphenate notranslate">Socket.getErrorText</span> for obtaining more
 1256  information about the error.</div>
 1257 </dd>
 1258 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.send"></span><div class="quickindex" id="quickindex.Socket.send"></div>@trusted ptrdiff_t <span class="def-anchor" id="send"></span><code class="ddoc_psymbol">send</code>(const(void)[] <code class="ddoc_param">buf</code>, SocketFlags <code class="ddoc_param">flags</code>);
 1259 <br><br>@safe ptrdiff_t <span class="def-anchor" id="send"></span><code class="ddoc_psymbol">send</code>(const(void)[] <code class="ddoc_param">buf</code>);
 1260 <br></div></dt>
 1261 <dd><div class="summary">Send data on the connection. If the socket is blocking and there is no
 1262  buffer space left, <span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="send"></span><code class="ddoc_psymbol">send</code></span> waits.
 1263 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">The number of bytes actually sent, or <span class="d_inlinecode donthyphenate notranslate">Socket.ERROR</span> on
 1264  failure.</div></div>
 1265 
 1266 </dd>
 1267 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.sendTo"></span><div class="quickindex" id="quickindex.Socket.sendTo"></div>@trusted ptrdiff_t <span class="def-anchor" id="sendTo"></span><code class="ddoc_psymbol">sendTo</code>(const(void)[] <code class="ddoc_param">buf</code>, SocketFlags <code class="ddoc_param">flags</code>, Address <code class="ddoc_param">to</code>);
 1268 <br><br>@safe ptrdiff_t <span class="def-anchor" id="sendTo"></span><code class="ddoc_psymbol">sendTo</code>(const(void)[] <code class="ddoc_param">buf</code>, Address <code class="ddoc_param">to</code>);
 1269 <br><br>@trusted ptrdiff_t <span class="def-anchor" id="sendTo"></span><code class="ddoc_psymbol">sendTo</code>(const(void)[] <code class="ddoc_param">buf</code>, SocketFlags <code class="ddoc_param">flags</code>);
 1270 <br><br>@safe ptrdiff_t <span class="def-anchor" id="sendTo"></span><code class="ddoc_psymbol">sendTo</code>(const(void)[] <code class="ddoc_param">buf</code>);
 1271 <br></div></dt>
 1272 <dd><div class="summary">Send data to a specific destination Address. If the destination address is
 1273  not specified, a connection must have been made and that address is used.
 1274  If the socket is blocking and there is no buffer space left, <span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="sendTo"></span><code class="ddoc_psymbol">sendTo</code></span> waits.
 1275 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">The number of bytes actually sent, or <span class="d_inlinecode donthyphenate notranslate">Socket.ERROR</span> on
 1276  failure.</div></div>
 1277 
 1278 </dd>
 1279 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.receive"></span><div class="quickindex" id="quickindex.Socket.receive"></div>@trusted ptrdiff_t <span class="def-anchor" id="receive"></span><code class="ddoc_psymbol">receive</code>(void[] <code class="ddoc_param">buf</code>, SocketFlags <code class="ddoc_param">flags</code>);
 1280 <br><br>@safe ptrdiff_t <span class="def-anchor" id="receive"></span><code class="ddoc_psymbol">receive</code>(void[] <code class="ddoc_param">buf</code>);
 1281 <br></div></dt>
 1282 <dd><div class="summary">Receive data on the connection. If the socket is blocking, <span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="receive"></span><code class="ddoc_psymbol">receive</code></span>
 1283  waits until there is data to be received.
 1284 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">The number of bytes actually received, <span class="d_inlinecode donthyphenate notranslate">0</span> if the remote side
 1285  has closed the connection, or <span class="d_inlinecode donthyphenate notranslate">Socket.ERROR</span> on failure.</div></div>
 1286 
 1287 </dd>
 1288 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.receiveFrom"></span><div class="quickindex" id="quickindex.Socket.receiveFrom"></div>@trusted ptrdiff_t <span class="def-anchor" id="receiveFrom"></span><code class="ddoc_psymbol">receiveFrom</code>(void[] <code class="ddoc_param">buf</code>, SocketFlags <code class="ddoc_param">flags</code>, ref Address <code class="ddoc_param">from</code>);
 1289 <br><br>@safe ptrdiff_t <span class="def-anchor" id="receiveFrom"></span><code class="ddoc_psymbol">receiveFrom</code>(void[] <code class="ddoc_param">buf</code>, ref Address <code class="ddoc_param">from</code>);
 1290 <br><br>@trusted ptrdiff_t <span class="def-anchor" id="receiveFrom"></span><code class="ddoc_psymbol">receiveFrom</code>(void[] <code class="ddoc_param">buf</code>, SocketFlags <code class="ddoc_param">flags</code>);
 1291 <br><br>@safe ptrdiff_t <span class="def-anchor" id="receiveFrom"></span><code class="ddoc_psymbol">receiveFrom</code>(void[] <code class="ddoc_param">buf</code>);
 1292 <br></div></dt>
 1293 <dd><div class="summary">Receive data and get the remote endpoint <span class="d_inlinecode donthyphenate notranslate">Address</span>.
 1294  If the socket is blocking, <span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="receiveFrom"></span><code class="ddoc_psymbol">receiveFrom</code></span> waits until there is data to
 1295  be received.
 1296 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">The number of bytes actually received, <span class="d_inlinecode donthyphenate notranslate">0</span> if the remote side
 1297  has closed the connection, or <span class="d_inlinecode donthyphenate notranslate">Socket.ERROR</span> on failure.</div></div>
 1298 
 1299 </dd>
 1300 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.getOption"></span><div class="quickindex" id="quickindex.Socket.getOption"></div>@trusted int <span class="def-anchor" id="getOption"></span><code class="ddoc_psymbol">getOption</code>(SocketOptionLevel <code class="ddoc_param">level</code>, SocketOption <code class="ddoc_param">option</code>, void[] <code class="ddoc_param">result</code>);
 1301 <br></div></dt>
 1302 <dd><div class="summary">Get a socket option.
 1303 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">The number of bytes written to <span class="d_inlinecode donthyphenate notranslate"><code class="ddoc_param">result</code></span>.
 1304  The length, in bytes, of the actual result - very different from getsockopt()</div></div>
 1305 
 1306 </dd>
 1307 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.getOption.2"></span><div class="quickindex" id="quickindex.Socket.getOption.2"></div>@trusted int <span class="def-anchor" id="getOption"></span><code class="ddoc_psymbol">getOption</code>(SocketOptionLevel <code class="ddoc_param">level</code>, SocketOption <code class="ddoc_param">option</code>, out int32_t <code class="ddoc_param">result</code>);
 1308 <br></div></dt>
 1309 <dd><div class="summary">Common case of getting integer and boolean options.</div>
 1310 </dd>
 1311 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.getOption.3"></span><div class="quickindex" id="quickindex.Socket.getOption.3"></div>@trusted int <span class="def-anchor" id="getOption"></span><code class="ddoc_psymbol">getOption</code>(SocketOptionLevel <code class="ddoc_param">level</code>, SocketOption <code class="ddoc_param">option</code>, out Linger <code class="ddoc_param">result</code>);
 1312 <br></div></dt>
 1313 <dd><div class="summary">Get the linger option.</div>
 1314 </dd>
 1315 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.getOption.4"></span><div class="quickindex" id="quickindex.Socket.getOption.4"></div>@trusted void <span class="def-anchor" id="getOption"></span><code class="ddoc_psymbol">getOption</code>(SocketOptionLevel <code class="ddoc_param">level</code>, SocketOption <code class="ddoc_param">option</code>, out Duration <code class="ddoc_param">result</code>);
 1316 <br></div></dt>
 1317 <dd><div class="summary">Get a timeout (duration) option.</div>
 1318 </dd>
 1319 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.setOption"></span><div class="quickindex" id="quickindex.Socket.setOption"></div>@trusted void <span class="def-anchor" id="setOption"></span><code class="ddoc_psymbol">setOption</code>(SocketOptionLevel <code class="ddoc_param">level</code>, SocketOption <code class="ddoc_param">option</code>, void[] <code class="ddoc_param">value</code>);
 1320 <br></div></dt>
 1321 <dd><div class="summary">Set a socket option.</div>
 1322 </dd>
 1323 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.setOption.2"></span><div class="quickindex" id="quickindex.Socket.setOption.2"></div>@trusted void <span class="def-anchor" id="setOption"></span><code class="ddoc_psymbol">setOption</code>(SocketOptionLevel <code class="ddoc_param">level</code>, SocketOption <code class="ddoc_param">option</code>, int32_t <code class="ddoc_param">value</code>);
 1324 <br></div></dt>
 1325 <dd><div class="summary">Common case for setting integer and boolean options.</div>
 1326 </dd>
 1327 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.setOption.3"></span><div class="quickindex" id="quickindex.Socket.setOption.3"></div>@trusted void <span class="def-anchor" id="setOption"></span><code class="ddoc_psymbol">setOption</code>(SocketOptionLevel <code class="ddoc_param">level</code>, SocketOption <code class="ddoc_param">option</code>, Linger <code class="ddoc_param">value</code>);
 1328 <br></div></dt>
 1329 <dd><div class="summary">Set the linger option.</div>
 1330 </dd>
 1331 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.setOption.4"></span><div class="quickindex" id="quickindex.Socket.setOption.4"></div>@trusted void <span class="def-anchor" id="setOption"></span><code class="ddoc_psymbol">setOption</code>(SocketOptionLevel <code class="ddoc_param">level</code>, SocketOption <code class="ddoc_param">option</code>, Duration <code class="ddoc_param">value</code>);
 1332 <br></div></dt>
 1333 <dd><div class="summary">Sets a timeout (duration) option, i.e. <span class="d_inlinecode donthyphenate notranslate">SocketOption.SNDTIMEO</span> or
 1334  <span class="d_inlinecode donthyphenate notranslate">RCVTIMEO</span>. Zero indicates no timeout.
 1335 </div><div class="description">In a typical application, you might also want to consider using
 1336  a non-blocking socket instead of setting a timeout on a blocking one.
 1337 
 1338 </div>
 1339 <div class="val"><p class="keyval Section"><span class="key keySection">Note</span>
 1340 While the receive timeout setting is generally quite accurate
 1341  on *nix systems even for smaller durations, there are two issues to
 1342  be aware of on Windows: First, although undocumented, the effective
 1343  timeout duration seems to be the one set on the socket plus half
 1344  a second. <span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="setOption"></span><code class="ddoc_psymbol">setOption</code>()</span> tries to compensate for that, but still,
 1345  timeouts under 500ms are not possible on Windows. Second, be aware
 1346  that the actual amount of time spent until a blocking call returns
 1347  randomly varies on the order of 10ms.
 1348 
 1349 </p></div>
 1350 <div class="keyval Parameters"><span class="key keyParameters">Parameters:</span> <div class="val valParameters"><table class="params"><tr class="param"><td class="param_id">SocketOptionLevel <code class="ddoc_param">level</code></td>
 1351 <td class="param_desc">The level at which a socket option is defined.</td></tr>
 1352 <tr class="param"><td class="param_id">SocketOption <code class="ddoc_param">option</code></td>
 1353 <td class="param_desc">Either <span class="d_inlinecode donthyphenate notranslate">SocketOption.SNDTIMEO</span> or <span class="d_inlinecode donthyphenate notranslate">SocketOption.RCVTIMEO</span>.</td></tr>
 1354 <tr class="param"><td class="param_id">Duration <code class="ddoc_param">value</code></td>
 1355 <td class="param_desc">The timeout duration to set. Must not be negative.</td></tr>
 1356 </table></div></div>
 1357 <div class="keyval Throws"><span class="key keyThrows">Throws:</span> <div class="val valThrows"><span class="d_inlinecode donthyphenate notranslate">SocketException</span> if setting the options fails.
 1358 
 1359 </div></div>
 1360 <div class="val"><p class="keyval Section"><span class="key keySection">Example</span>
 1361 <pre class="d_code notranslate"><span class="d_keyword">import</span> std.datetime;
 1362 <span class="d_keyword">import</span> std.typecons;
 1363 <span class="d_keyword">auto</span> pair = socketPair();
 1364 <span class="d_keyword">scope</span>(exit) <span class="d_keyword">foreach</span> (s; pair) s.close();
 1365 
 1366 <span class="d_comment">// Set a receive timeout, and then wait at one end of
 1367 </span><span class="d_comment">// the socket pair, knowing that no data will arrive.
 1368 </span>pair[0].<span class="d_psymbol">setOption</span>(SocketOptionLevel.SOCKET,
 1369     SocketOption.RCVTIMEO, dur!<span class="d_string">"seconds"</span>(1));
 1370 
 1371 <span class="d_keyword">auto</span> sw = StopWatch(Yes.autoStart);
 1372 <span class="d_keyword">ubyte</span>[1] buffer;
 1373 pair[0].receive(buffer);
 1374 writefln(<span class="d_string">"Waited %s ms until the socket timed out."</span>,
 1375     sw.peek.msecs);
 1376 </pre>
 1377 </p></div>
 1378 
 1379 </dd>
 1380 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.getErrorText"></span><div class="quickindex" id="quickindex.Socket.getErrorText"></div>@safe string <span class="def-anchor" id="getErrorText"></span><code class="ddoc_psymbol">getErrorText</code>();
 1381 <br></div></dt>
 1382 <dd><div class="summary">Get a text description of this socket's error status, and clear the
 1383  socket's error status.</div>
 1384 </dd>
 1385 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.setKeepAlive"></span><div class="quickindex" id="quickindex.Socket.setKeepAlive"></div>@trusted void <span class="def-anchor" id="setKeepAlive"></span><code class="ddoc_psymbol">setKeepAlive</code>(int <code class="ddoc_param">time</code>, int <code class="ddoc_param">interval</code>);
 1386 <br></div></dt>
 1387 <dd><div class="summary">Enables TCP keep-alive with the specified parameters.
 1388 </div><div class="keyval Parameters"><span class="key keyParameters">Parameters:</span> <div class="val valParameters"><table class="params"><tr class="param"><td class="param_id">int <code class="ddoc_param">time</code></td>
 1389 <td class="param_desc">Number of seconds with no activity until the first
 1390               keep-alive packet is sent.</td></tr>
 1391 <tr class="param"><td class="param_id">int <code class="ddoc_param">interval</code></td>
 1392 <td class="param_desc">Number of seconds between when successive keep-alive
 1393               packets are sent if no acknowledgement is received.</td></tr>
 1394 </table></div></div>
 1395 <div class="keyval Throws"><span class="key keyThrows">Throws:</span> <div class="val valThrows"><span class="d_inlinecode donthyphenate notranslate">SocketOSException</span> if setting the options fails, or
 1396  <span class="d_inlinecode donthyphenate notranslate">SocketFeatureException</span> if setting keep-alive parameters is
 1397  unsupported on the current platform.</div></div>
 1398 
 1399 </dd>
 1400 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.select"></span><div class="quickindex" id="quickindex.Socket.select"></div>static @trusted int <span class="def-anchor" id="select"></span><code class="ddoc_psymbol">select</code>(SocketSet <code class="ddoc_param">checkRead</code>, SocketSet <code class="ddoc_param">checkWrite</code>, SocketSet <code class="ddoc_param">checkError</code>, Duration <code class="ddoc_param">timeout</code>);
 1401 <br><br>static @safe int <span class="def-anchor" id="select"></span><code class="ddoc_psymbol">select</code>(SocketSet <code class="ddoc_param">checkRead</code>, SocketSet <code class="ddoc_param">checkWrite</code>, SocketSet <code class="ddoc_param">checkError</code>);
 1402 <br><br>static @trusted int <span class="def-anchor" id="select"></span><code class="ddoc_psymbol">select</code>(SocketSet <code class="ddoc_param">checkRead</code>, SocketSet <code class="ddoc_param">checkWrite</code>, SocketSet <code class="ddoc_param">checkError</code>, TimeVal* <code class="ddoc_param">timeout</code>);
 1403 <br></div></dt>
 1404 <dd><div class="summary">Wait for a socket to change status. A wait timeout of <a href="core_time.html#.Duration"><span class="d_inlinecode donthyphenate notranslate">core.time.Duration</span></a> or
 1405  <span class="d_inlinecode donthyphenate notranslate">TimeVal</span>, may be specified; if a timeout is not specified or the
 1406  <span class="d_inlinecode donthyphenate notranslate">TimeVal</span> is <span class="d_inlinecode donthyphenate notranslate">null</span>, the maximum timeout is used. The <span class="d_inlinecode donthyphenate notranslate">TimeVal</span>
 1407  timeout has an unspecified value when <span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="select"></span><code class="ddoc_psymbol">select</code></span> returns.
 1408 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">The number of sockets with status changes, <span class="d_inlinecode donthyphenate notranslate">0</span> on timeout,
 1409  or <span class="d_inlinecode donthyphenate notranslate">-1</span> on interruption. If the return value is greater than <span class="d_inlinecode donthyphenate notranslate">0</span>,
 1410  the <span class="d_inlinecode donthyphenate notranslate">SocketSets</span> are updated to only contain the sockets having status
 1411  changes. For a connecting socket, a write status change means the
 1412  connection is established and it's able to send. For a listening socket,
 1413  a read status change means there is an incoming connection request and
 1414  it's able to accept.
 1415 <div class="blankline"></div>
 1416 
 1417  <span class="d_inlinecode donthyphenate notranslate">SocketSet</span>'s updated to include only those sockets which an event occured.
 1418  For a <span class="d_inlinecode donthyphenate notranslate">connect()</span>ing socket, writeability means connected.
 1419  For a <span class="d_inlinecode donthyphenate notranslate">listen()</span>ing socket, readability means listening
 1420  <span class="d_inlinecode donthyphenate notranslate">Winsock</span>; possibly internally limited to 64 sockets per set.
 1421 
 1422 </div></div>
 1423 <div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">the number of events, 0 on timeout, or -1 on interruption</div></div>
 1424 
 1425 </dd>
 1426 <dt class="d_decl"><div ><span class="def-anchor" id=".Socket.createAddress"></span><div class="quickindex" id="quickindex.Socket.createAddress"></div>protected pure nothrow @safe Address <span class="def-anchor" id="createAddress"></span><code class="ddoc_psymbol">createAddress</code>();
 1427 <br></div></dt>
 1428 <dd><div class="summary">Can be overridden to support other addresses.
 1429 </div><div class="keyval Returns"><span class="key keyReturns">Returns:</span> <div class="val valReturns">a new <span class="d_inlinecode donthyphenate notranslate">Address</span> object for the current address family.</div></div>
 1430 
 1431 </dd>
 1432 </dl>
 1433 </dd>
 1434 <dt class="d_decl"><div ><span class="def-anchor" id=".TcpSocket"></span><div class="quickindex" id="quickindex.TcpSocket"></div>class <span class="def-anchor" id="TcpSocket"></span><code class="ddoc_psymbol">TcpSocket</code>: <span class="ddoc_psuper_symbol">std.socket.Socket</span>;
 1435 <br></div></dt>
 1436 <dd><div class="summary"><span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="TcpSocket"></span><code class="ddoc_psymbol">TcpSocket</code></span> is a shortcut class for a TCP Socket.</div>
 1437 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".TcpSocket.this"></span><div class="quickindex" id="quickindex.TcpSocket.this"></div>@safe this(AddressFamily <code class="ddoc_param">family</code>);
 1438 <br></div></dt>
 1439 <dd><div class="summary">Constructs a blocking TCP Socket.</div>
 1440 </dd>
 1441 <dt class="d_decl"><div ><span class="def-anchor" id=".TcpSocket.this.2"></span><div class="quickindex" id="quickindex.TcpSocket.this.2"></div>@safe this();
 1442 <br></div></dt>
 1443 <dd><div class="summary">Constructs a blocking IPv4 TCP Socket.</div>
 1444 </dd>
 1445 <dt class="d_decl"><div ><span class="def-anchor" id=".TcpSocket.this.3"></span><div class="quickindex" id="quickindex.TcpSocket.this.3"></div>@safe this(Address <code class="ddoc_param">connectTo</code>);
 1446 <br></div></dt>
 1447 <dd><div class="summary">Constructs a blocking TCP Socket and connects to an <span class="d_inlinecode donthyphenate notranslate">Address</span>.</div>
 1448 </dd>
 1449 </dl>
 1450 </dd>
 1451 <dt class="d_decl"><div ><span class="def-anchor" id=".UdpSocket"></span><div class="quickindex" id="quickindex.UdpSocket"></div>class <span class="def-anchor" id="UdpSocket"></span><code class="ddoc_psymbol">UdpSocket</code>: <span class="ddoc_psuper_symbol">std.socket.Socket</span>;
 1452 <br></div></dt>
 1453 <dd><div class="summary"><span class="d_inlinecode donthyphenate notranslate"><span class="def-anchor" id="UdpSocket"></span><code class="ddoc_psymbol">UdpSocket</code></span> is a shortcut class for a UDP Socket.</div>
 1454 <dl><dt class="d_decl"><div ><span class="def-anchor" id=".UdpSocket.this"></span><div class="quickindex" id="quickindex.UdpSocket.this"></div>@safe this(AddressFamily <code class="ddoc_param">family</code>);
 1455 <br></div></dt>
 1456 <dd><div class="summary">Constructs a blocking UDP Socket.</div>
 1457 </dd>
 1458 <dt class="d_decl"><div ><span class="def-anchor" id=".UdpSocket.this.2"></span><div class="quickindex" id="quickindex.UdpSocket.this.2"></div>@safe this();
 1459 <br></div></dt>
 1460 <dd><div class="summary">Constructs a blocking IPv4 UDP Socket.</div>
 1461 </dd>
 1462 </dl>
 1463 </dd>
 1464 <dt class="d_decl"><div ><span class="def-anchor" id=".socketPair"></span><div class="quickindex" id="quickindex.socketPair"></div>@trusted Socket[2] <span class="def-anchor" id="socketPair"></span><code class="ddoc_psymbol">socketPair</code>();
 1465 <br></div></dt>
 1466 <dd><div class="summary">Creates a pair of connected sockets.
 1467 </div><div class="description">The two sockets are indistinguishable.
 1468 
 1469 </div>
 1470 <div class="keyval Throws"><span class="key keyThrows">Throws:</span> <div class="val valThrows"><span class="d_inlinecode donthyphenate notranslate">SocketException</span> if creation of the sockets fails.</div></div>
 1471 <span class="dlang_runnable"></span><div class="keyval Examples"><span class="key keyExamples">Examples:</span> <div class="val valExamples"><pre class="d_code notranslate"><span class="d_keyword">immutable</span> <span class="d_keyword">ubyte</span>[] data = [1, 2, 3, 4];
 1472 <span class="d_keyword">auto</span> pair = <span class="d_psymbol">socketPair</span>();
 1473 <span class="d_keyword">scope</span>(exit) <span class="d_keyword">foreach</span> (s; pair) s.close();
 1474 
 1475 pair[0].send(data);
 1476 
 1477 <span class="d_keyword">auto</span> buf = <span class="d_keyword">new</span> <span class="d_keyword">ubyte</span>[data.length];
 1478 pair[1].receive(buf);
 1479 writeln(buf); <span class="d_comment">// data
 1480 </span></pre>
 1481 </div></div>
 1482 
 1483 </dd>
 1484 </dl>
 1485 
 1486         <div class="smallprint" id="copyright">Copyright &copy; 1999-2020 by the <a href="../foundation_overview.html">D Language Foundation</a> | Page generated by
 1487 <a href="../spec/ddoc.html">Ddoc</a> on Fri Nov 20 21:58:12 2020
 1488 </div>
 1489     </div>
 1490 </div>
 1491 
 1492     <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
 1493     <script type="text/javascript">window.jQuery || document.write('\x3Cscript src="../js/jquery-1.7.2.min.js">\x3C/script>');</script>
 1494     <script type="text/javascript" src="../js/dlang.js"></script>
 1495     
 1496     <script type="text/javascript" src="../js/codemirror-compressed.js"></script>
 1497     <script type="text/javascript" src="../js/run.js"></script>
 1498 <script type="text/javascript" src="../js/run_examples.js"></script>
 1499 
 1500 <script type="text/javascript" src="../js/listanchors.js"></script>
 1501 <script type="text/javascript" src="../js/show_contributors.js"></script>
 1502 <script type="text/javascript">jQuery(document).ready(listanchors);</script>
 1503 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
 1504 </body>
 1505 </html>