docs update

This commit is contained in:
Dirk Alders 2025-08-17 13:30:37 +02:00
parent c144db49fd
commit cbd9300f7f
7 changed files with 975 additions and 3 deletions

View File

@ -77,6 +77,9 @@
<li class="right" style="margin-right: 10px">
<a href="#" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><img src="_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
@ -122,8 +125,131 @@
<h1 id="index">Index</h1>
<div class="genindex-jumpbox">
<a href="#C"><strong>C</strong></a>
| <a href="#D"><strong>D</strong></a>
| <a href="#I"><strong>I</strong></a>
| <a href="#M"><strong>M</strong></a>
| <a href="#R"><strong>R</strong></a>
| <a href="#S"><strong>S</strong></a>
| <a href="#T"><strong>T</strong></a>
</div>
<h2 id="C">C</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="tcp_socket.html#tcp_socket.tcp_base.client_address">client_address() (tcp_socket.tcp_base method)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="tcp_socket.html#tcp_socket.tcp_base.close">close() (tcp_socket.tcp_base method)</a>
</li>
<li><a href="tcp_socket.html#tcp_socket.tcp_base.COM_TIMEOUT">COM_TIMEOUT (tcp_socket.tcp_base attribute)</a>
</li>
</ul></td>
</tr></table>
<h2 id="D">D</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="tcp_socket.html#tcp_socket.tcp_base.DEFAULT_CHANNEL_NAME">DEFAULT_CHANNEL_NAME (tcp_socket.tcp_base attribute)</a>
</li>
</ul></td>
</tr></table>
<h2 id="I">I</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="tcp_socket.html#tcp_socket.tcp_base.init_channel_name">init_channel_name() (tcp_socket.tcp_base method)</a>
</li>
<li><a href="tcp_socket.html#tcp_socket.tcp_base.IS_CLIENT">IS_CLIENT (tcp_socket.tcp_base attribute)</a>
<ul>
<li><a href="tcp_socket.html#tcp_socket.tcp_client.IS_CLIENT">(tcp_socket.tcp_client attribute)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="tcp_socket.html#tcp_socket.tcp_base.is_connected">is_connected() (tcp_socket.tcp_base method)</a>
</li>
</ul></td>
</tr></table>
<h2 id="M">M</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li>
module
<ul>
<li><a href="tcp_socket.html#module-tcp_socket">tcp_socket</a>
</li>
</ul></li>
</ul></td>
</tr></table>
<h2 id="R">R</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="tcp_socket.html#tcp_socket.tcp_base.receive">receive() (tcp_socket.tcp_base method)</a>
<ul>
<li><a href="tcp_socket.html#tcp_socket.tcp_base_stp.receive">(tcp_socket.tcp_base_stp method)</a>
</li>
</ul></li>
<li><a href="tcp_socket.html#tcp_socket.tcp_client.reconnect">reconnect() (tcp_socket.tcp_client method)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="tcp_socket.html#tcp_socket.tcp_base.register_callback">register_callback() (tcp_socket.tcp_base method)</a>
</li>
<li><a href="tcp_socket.html#tcp_socket.tcp_base.register_connect_callback">register_connect_callback() (tcp_socket.tcp_base method)</a>
</li>
<li><a href="tcp_socket.html#tcp_socket.tcp_base.register_disconnect_callback">register_disconnect_callback() (tcp_socket.tcp_base method)</a>
</li>
<li><a href="tcp_socket.html#tcp_socket.tcp_base.RX_LENGTH">RX_LENGTH (tcp_socket.tcp_base attribute)</a>
</li>
</ul></td>
</tr></table>
<h2 id="S">S</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="tcp_socket.html#tcp_socket.tcp_base.send">send() (tcp_socket.tcp_base method)</a>
<ul>
<li><a href="tcp_socket.html#tcp_socket.tcp_base_stp.send">(tcp_socket.tcp_base_stp method)</a>
</li>
</ul></li>
</ul></td>
</tr></table>
<h2 id="T">T</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="tcp_socket.html#tcp_socket.tcp_base">tcp_base (class in tcp_socket)</a>
</li>
<li><a href="tcp_socket.html#tcp_socket.tcp_base_stp">tcp_base_stp (class in tcp_socket)</a>
</li>
<li><a href="tcp_socket.html#tcp_socket.tcp_client">tcp_client (class in tcp_socket)</a>
</li>
<li><a href="tcp_socket.html#tcp_socket.tcp_client_stp">tcp_client_stp (class in tcp_socket)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="tcp_socket.html#tcp_socket.tcp_server">tcp_server (class in tcp_socket)</a>
</li>
<li><a href="tcp_socket.html#tcp_socket.tcp_server_stp">tcp_server_stp (class in tcp_socket)</a>
</li>
<li>
tcp_socket
<ul>
<li><a href="tcp_socket.html#module-tcp_socket">module</a>
</li>
</ul></li>
</ul></td>
</tr></table>
<div class="clearer"></div>
@ -152,6 +278,9 @@
<li class="right" style="margin-right: 10px">
<a href="#" title="General Index"
>index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><img src="_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">

Binary file not shown.

238
_docs_/py-modindex.html Normal file
View File

@ -0,0 +1,238 @@
<!DOCTYPE html>
<html lang="en" data-content_root="./">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Python Module Index &#8212; tcp_socket documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="_static/classic.css?v=67a6116b" />
<link rel="stylesheet" type="text/css" href="_static/pydoctheme.css?v=5ff89526" />
<link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="_static/pygments_dark.css?v=5349f25f" />
<script src="_static/documentation_options.js?v=5929fcd5"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="stylesheet" href="_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">
<link rel="shortcut icon" type="image/png" href="_static/py.svg">
<script type="text/javascript" src="_static/copybutton.js"></script>
<script type="text/javascript" src="_static/menu.js"></script>
<script type="text/javascript" src="_static/search-focus.js"></script>
<script type="text/javascript" src="_static/themetoggle.js"></script>
<script>
DOCUMENTATION_OPTIONS.COLLAPSE_INDEX = true;
</script>
</head>
<body>
<div class="mobile-nav">
<input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu">
<nav class="nav-content" role="navigation">
<label for="menuToggler" class="toggler__label">
<span></span>
</label>
<span class="nav-items-wrapper">
<a href="https://www.python.org/" class="nav-logo">
<img src="_static/py.svg" alt="Python logo">
</a>
<span class="version_switcher_placeholder"></span>
<form role="search" class="search" action="search.html" method="get">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
<path fill-rule="nonzero" fill="currentColor" d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
</svg>
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q">
<input type="submit" value="Go">
</form>
</span>
</nav>
<div class="menu-wrapper">
<nav class="menu" role="navigation" aria-label="main navigation">
<div class="language_switcher_placeholder"></div>
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</nav>
</div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="#" title="Python Module Index"
>modules</a> |</li>
<li><img src="_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
<a href="index.html">tcp_socket documentation</a> &#187;
</li>
<li class="nav-item nav-item-this"><a href="">Python Module Index</a></li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="search.html" method="get">
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">
<input type="submit" value="Go">
</form>
</div>
|
</li>
<li class="right">
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label> |</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<h1>Python Module Index</h1>
<div class="modindex-jumpbox">
<a href="#cap-t"><strong>t</strong></a>
</div>
<table class="indextable modindextable">
<tr class="pcap"><td></td><td>&#160;</td><td></td></tr>
<tr class="cap" id="cap-t"><td></td><td>
<strong>t</strong></td><td></td></tr>
<tr>
<td></td>
<td>
<a href="tcp_socket.html#module-tcp_socket"><code class="xref">tcp_socket</code></a></td><td>
<em></em></td></tr>
</table>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="#" title="Python Module Index"
>modules</a> |</li>
<li><img src="_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
<a href="index.html">tcp_socket documentation</a> &#187;
</li>
<li class="nav-item nav-item-this"><a href="">Python Module Index</a></li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="search.html" method="get">
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">
<input type="submit" value="Go">
</form>
</div>
|
</li>
<li class="right">
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label> |</li>
</ul>
</div>
<div class="footer">
&copy;
Copyright
2025, Dirk Alders.
<br>
This page is licensed under the Python Software Foundation License Version 2.
<br>
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
<br>
<br>
The Python Software Foundation is a non-profit corporation.
<a href="https://www.python.org/psf/donations/">Please donate.</a>
<br>
<br>
<br>
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>

View File

@ -67,6 +67,9 @@
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><img src="_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
@ -141,6 +144,9 @@
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><img src="_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">

View File

@ -1 +1 @@
Search.setIndex({"alltitles":{"tcp_socket package":[[0,null]]},"docnames":["tcp_socket"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["tcp_socket.rst"],"indexentries":{},"objects":{},"objnames":{},"objtypes":{},"terms":{},"titles":["tcp_socket package"],"titleterms":{"packag":0,"tcp_socket":0}})
Search.setIndex({"alltitles":{"tcp_socket (TCP Socket)":[[0,"tcp-socket-tcp-socket"]],"tcp_socket package":[[0,null]]},"docnames":["tcp_socket"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["tcp_socket.rst"],"indexentries":{},"objects":{"":[[0,0,0,"-","tcp_socket"]],"tcp_socket":[[0,1,1,"","tcp_base"],[0,1,1,"","tcp_base_stp"],[0,1,1,"","tcp_client"],[0,1,1,"","tcp_client_stp"],[0,1,1,"","tcp_server"],[0,1,1,"","tcp_server_stp"]],"tcp_socket.tcp_base":[[0,2,1,"","COM_TIMEOUT"],[0,2,1,"","DEFAULT_CHANNEL_NAME"],[0,2,1,"","IS_CLIENT"],[0,2,1,"","RX_LENGTH"],[0,3,1,"","client_address"],[0,3,1,"","close"],[0,3,1,"","init_channel_name"],[0,3,1,"","is_connected"],[0,3,1,"","receive"],[0,3,1,"","register_callback"],[0,3,1,"","register_connect_callback"],[0,3,1,"","register_disconnect_callback"],[0,3,1,"","send"]],"tcp_socket.tcp_base_stp":[[0,3,1,"","receive"],[0,3,1,"","send"]],"tcp_socket.tcp_client":[[0,2,1,"","IS_CLIENT"],[0,3,1,"","reconnect"]]},"objnames":{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","method","Python method"]},"objtypes":{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:method"},"terms":{"":0,"0":0,"1":0,"127":0,"17000":0,"17017":0,"20":0,"255":0,"3":0,"3a":0,"3c":0,"3e":0,"5":0,"61":0,"62":0,"63":0,"7":0,"The":0,"With":0,"abc":0,"abl":0,"address":0,"after":0,"alder":0,"all":0,"all_oth":0,"also":0,"append":0,"argument":0,"author":0,"avail":0,"b":0,"base":0,"been":0,"bool":0,"buffer":0,"byte":0,"c":0,"callback":0,"can":0,"chang":0,"channel":0,"channel_nam":0,"charact":0,"class":0,"clean":0,"clien":0,"client":0,"client_address":0,"close":0,"com_timeout":0,"comm":0,"commun":0,"connect":0,"creat":0,"data":0,"de":0,"debug":0,"def":0,"default_channel_nam":0,"default_logging_config":0,"descript":0,"design":0,"direct":0,"dirk":0,"document":0,"e":0,"end":0,"establish":0,"exampl":0,"execut":0,"exist":0,"fals":0,"first":0,"float":0,"from":0,"function":0,"g":0,"get":0,"given":0,"had":0,"host":0,"i":0,"identifi":0,"import":0,"info":0,"inform":0,"init_channel_nam":0,"initi":0,"instanc":0,"int":0,"ip":0,"is_client":0,"is_connect":0,"least":0,"listen":0,"log":0,"logger":0,"lost":0,"messag":0,"method":0,"mirror_callback":0,"mockeri":0,"modul":0,"more":0,"mount":0,"name":0,"need":0,"new":0,"none":0,"nopep8":0,"num":0,"number":0,"object":0,"one":0,"other":0,"otherwis":0,"over":0,"pack":0,"paramet":0,"parent":0,"path":0,"pattern":0,"port":0,"print":0,"receiv":0,"reconnect":0,"register_callback":0,"register_connect_callback":0,"register_disconnect_callback":0,"report":0,"repr":0,"return":0,"run":0,"rx":0,"rx_length":0,"rx_tx_log_lvl":0,"see":0,"send":0,"sent":0,"serial":0,"server":0,"start":0,"state":0,"statu":0,"store":0,"stp":0,"stp_state_escape_1":0,"stp_state_escape_2":0,"stp_state_idl":0,"stp_state_store_data":0,"str":0,"stream":0,"stringtool":0,"submodul":0,"sudo":0,"support":0,"sy":0,"sync":0,"tcp_base":0,"tcp_base_stp":0,"tcp_client":0,"tcp_client_stp":0,"tcp_server":0,"tcp_server_stp":0,"thi":0,"time":0,"timeout":0,"transfer":0,"true":0,"tx":0,"type":0,"unittest":0,"unpack":0,"up":0,"us":0,"usag":0,"via":0,"when":0,"which":0,"you":0},"titles":["tcp_socket package"],"titleterms":{"packag":0,"socket":0,"tcp":0,"tcp_socket":0}})

View File

@ -58,6 +58,45 @@
<option value="dark">Dark</option>
</select>
</label>
<div>
<h3><a href="#">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">tcp_socket package</a><ul>
<li><a class="reference internal" href="#tcp-socket-tcp-socket">tcp_socket (TCP Socket)</a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base"><code class="docutils literal notranslate"><span class="pre">tcp_base</span></code></a><ul>
<li><a class="reference internal" href="#tcp_socket.tcp_base.COM_TIMEOUT"><code class="docutils literal notranslate"><span class="pre">tcp_base.COM_TIMEOUT</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.DEFAULT_CHANNEL_NAME"><code class="docutils literal notranslate"><span class="pre">tcp_base.DEFAULT_CHANNEL_NAME</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">tcp_base.IS_CLIENT</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.RX_LENGTH"><code class="docutils literal notranslate"><span class="pre">tcp_base.RX_LENGTH</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.client_address"><code class="docutils literal notranslate"><span class="pre">tcp_base.client_address()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.close"><code class="docutils literal notranslate"><span class="pre">tcp_base.close()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.init_channel_name"><code class="docutils literal notranslate"><span class="pre">tcp_base.init_channel_name()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.is_connected"><code class="docutils literal notranslate"><span class="pre">tcp_base.is_connected()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.receive"><code class="docutils literal notranslate"><span class="pre">tcp_base.receive()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.register_callback"><code class="docutils literal notranslate"><span class="pre">tcp_base.register_callback()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.register_connect_callback"><code class="docutils literal notranslate"><span class="pre">tcp_base.register_connect_callback()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.register_disconnect_callback"><code class="docutils literal notranslate"><span class="pre">tcp_base.register_disconnect_callback()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.send"><code class="docutils literal notranslate"><span class="pre">tcp_base.send()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#tcp_socket.tcp_base_stp"><code class="docutils literal notranslate"><span class="pre">tcp_base_stp</span></code></a><ul>
<li><a class="reference internal" href="#tcp_socket.tcp_base_stp.receive"><code class="docutils literal notranslate"><span class="pre">tcp_base_stp.receive()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base_stp.send"><code class="docutils literal notranslate"><span class="pre">tcp_base_stp.send()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#tcp_socket.tcp_client"><code class="docutils literal notranslate"><span class="pre">tcp_client</span></code></a><ul>
<li><a class="reference internal" href="#tcp_socket.tcp_client.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">tcp_client.IS_CLIENT</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_client.reconnect"><code class="docutils literal notranslate"><span class="pre">tcp_client.reconnect()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#tcp_socket.tcp_client_stp"><code class="docutils literal notranslate"><span class="pre">tcp_client_stp</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_server"><code class="docutils literal notranslate"><span class="pre">tcp_server</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_server_stp"><code class="docutils literal notranslate"><span class="pre">tcp_server_stp</span></code></a></li>
</ul>
</li>
</ul>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
@ -85,6 +124,9 @@
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><img src="_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
@ -126,8 +168,523 @@
<div class="bodywrapper">
<div class="body" role="main">
<section id="tcp-socket-package">
<h1>tcp_socket package<a class="headerlink" href="#tcp-socket-package" title="Link to this heading"></a></h1>
<section id="module-tcp_socket">
<span id="tcp-socket-package"></span><h1>tcp_socket package<a class="headerlink" href="#module-tcp_socket" title="Link to this heading"></a></h1>
<section id="tcp-socket-tcp-socket">
<h2>tcp_socket (TCP Socket)<a class="headerlink" href="#tcp-socket-tcp-socket" title="Link to this heading"></a></h2>
<p><strong>Author:</strong></p>
<ul class="simple">
<li><p>Dirk Alders &lt;<a class="reference external" href="mailto:sudo-dirk&#37;&#52;&#48;mount-mockery&#46;de">sudo-dirk<span>&#64;</span>mount-mockery<span>&#46;</span>de</a>&gt;</p></li>
</ul>
<p><strong>Description:</strong></p>
<blockquote>
<div><p>This Module supports a client/ server tcp socket connection.</p>
</div></blockquote>
<p><strong>Submodules:</strong></p>
<ul class="simple">
<li><p><a class="reference internal" href="#tcp_socket.tcp_client" title="tcp_socket.tcp_client"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_socket.tcp_client</span></code></a></p></li>
<li><p><a class="reference internal" href="#tcp_socket.tcp_client_stp" title="tcp_socket.tcp_client_stp"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_socket.tcp_client_stp</span></code></a></p></li>
<li><p><a class="reference internal" href="#tcp_socket.tcp_server" title="tcp_socket.tcp_server"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_socket.tcp_server</span></code></a></p></li>
<li><p><a class="reference internal" href="#tcp_socket.tcp_server_stp" title="tcp_socket.tcp_server_stp"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_socket.tcp_server_stp</span></code></a></p></li>
</ul>
<p><strong>Unittest:</strong></p>
<blockquote>
<div><p>See also the <a class="reference download internal" download="" href="_downloads/116764b172e3896101367c053dc35373/unittest.pdf"><code class="xref download docutils literal notranslate"><span class="pre">unittest</span></code></a> documentation.</p>
</div></blockquote>
<p><strong>Module Documentation:</strong></p>
</section>
<dl class="py class">
<dt class="sig sig-object py" id="tcp_socket.tcp_base">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">tcp_socket.</span></span><span class="sig-name descname"><span class="pre">tcp_base</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">host</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rx_tx_log_lvl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">20</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_base" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>This is the base class for other classes in this module.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>host</strong> (<em>str</em>) The host IP for the TCP socket functionality</p></li>
<li><p><strong>port</strong> (<em>int</em>) The port for the TCP socket functionality</p></li>
<li><p><strong>channel_name</strong> (<em>str</em>) The name for the logging channel</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This class is not designed for direct usage.</p>
</div>
<dl class="py attribute">
<dt class="sig sig-object py" id="tcp_socket.tcp_base.COM_TIMEOUT">
<span class="sig-name descname"><span class="pre">COM_TIMEOUT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0.5</span></em><a class="headerlink" href="#tcp_socket.tcp_base.COM_TIMEOUT" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="tcp_socket.tcp_base.DEFAULT_CHANNEL_NAME">
<span class="sig-name descname"><span class="pre">DEFAULT_CHANNEL_NAME</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'all_others'</span></em><a class="headerlink" href="#tcp_socket.tcp_base.DEFAULT_CHANNEL_NAME" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="tcp_socket.tcp_base.IS_CLIENT">
<span class="sig-name descname"><span class="pre">IS_CLIENT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#tcp_socket.tcp_base.IS_CLIENT" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="tcp_socket.tcp_base.RX_LENGTH">
<span class="sig-name descname"><span class="pre">RX_LENGTH</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">255</span></em><a class="headerlink" href="#tcp_socket.tcp_base.RX_LENGTH" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="tcp_socket.tcp_base.client_address">
<span class="sig-name descname"><span class="pre">client_address</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_base.client_address" title="Link to this definition"></a></dt>
<dd><p>This method returns the address of the connected client.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The client address.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>str</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="tcp_socket.tcp_base.close">
<span class="sig-name descname"><span class="pre">close</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_base.close" title="Link to this definition"></a></dt>
<dd><p>This method closes the connected communication channel, if exists.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="tcp_socket.tcp_base.init_channel_name">
<span class="sig-name descname"><span class="pre">init_channel_name</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">channel_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_base.init_channel_name" title="Link to this definition"></a></dt>
<dd><p>With this Method, the channel name for logging can be changed.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>channel_name</strong> (<em>str</em>) The name for the logging channel</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="tcp_socket.tcp_base.is_connected">
<span class="sig-name descname"><span class="pre">is_connected</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_base.is_connected" title="Link to this definition"></a></dt>
<dd><p>With this Method the connection status can be identified.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>True, if a connection is established, otherwise False.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>bool</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="tcp_socket.tcp_base.receive">
<span class="sig-name descname"><span class="pre">receive</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_base.receive" title="Link to this definition"></a></dt>
<dd><p>This method returns received data.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>timeout</strong> (<em>float</em>) The timeout for receiving data (at least after the timeout the method returns data or None).</p></li>
<li><p><strong>num</strong> (<em>int</em>) the number of bytes to receive (use None to get all available data).</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The received data.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>bytes</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="tcp_socket.tcp_base.register_callback">
<span class="sig-name descname"><span class="pre">register_callback</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_base.register_callback" title="Link to this definition"></a></dt>
<dd><p>This method stores the callback which is executed, if data is available. You need to execute <a class="reference internal" href="#tcp_socket.tcp_base.receive" title="tcp_socket.tcp_base.receive"><code class="xref py py-func docutils literal notranslate"><span class="pre">receive()</span></code></a> of this instance
given as first argument.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>callback</strong> The callback which will be executed, when data is available.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="tcp_socket.tcp_base.register_connect_callback">
<span class="sig-name descname"><span class="pre">register_connect_callback</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_base.register_connect_callback" title="Link to this definition"></a></dt>
<dd><p>This method stores the callback which is executed, if a connection is established.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>callback</strong> The callback which will be executed, when a connection is established.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="tcp_socket.tcp_base.register_disconnect_callback">
<span class="sig-name descname"><span class="pre">register_disconnect_callback</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">callback</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_base.register_disconnect_callback" title="Link to this definition"></a></dt>
<dd><p>This method stores the callback which is executed, after the connection is lost.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>callback</strong> The callback which will be executed, after the connection is lost.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="tcp_socket.tcp_base.send">
<span class="sig-name descname"><span class="pre">send</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_base.send" title="Link to this definition"></a></dt>
<dd><p>This method sends data via the initiated communication channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>data</strong> (<em>bytes</em>) The data to be send over the communication channel.</p></li>
<li><p><strong>timeout</strong> (<em>float</em>) The timeout for sending data (e.g. time to establish new connection).</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if data had been sent, otherwise False.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>bool</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="tcp_socket.tcp_base_stp">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">tcp_socket.</span></span><span class="sig-name descname"><span class="pre">tcp_base_stp</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">host</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_base_stp" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#tcp_socket.tcp_base" title="tcp_socket.tcp_base"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_base</span></code></a></p>
<p>This is the base class for other classes in this module. See also parent <a class="reference internal" href="#tcp_socket.tcp_base" title="tcp_socket.tcp_base"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_base</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>host</strong> (<em>str</em>) The host IP for the TCP socket functionality</p></li>
<li><p><strong>port</strong> (<em>int</em>) The port for the TCP socket functionality</p></li>
<li><p><strong>channel_name</strong> (<em>str</em>) The name for the logging channel</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This class is not designed for direct usage.</p>
</div>
<dl class="py method">
<dt class="sig sig-object py" id="tcp_socket.tcp_base_stp.receive">
<span class="sig-name descname"><span class="pre">receive</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_base_stp.receive" title="Link to this definition"></a></dt>
<dd><p>This method returns one received messages via the initiated communication channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>timeout</strong> (<em>float</em>) The timeout for receiving data (at least after the timeout the method returns data or None).</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The received data.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>bytes</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="tcp_socket.tcp_base_stp.send">
<span class="sig-name descname"><span class="pre">send</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_base_stp.send" title="Link to this definition"></a></dt>
<dd><p>This method sends one stp message via the initiated communication channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>data</strong> (<em>bytes</em>) The message to be send over the communication channel.</p></li>
<li><p><strong>timeout</strong> (<em>float</em>) The timeout for sending data (e.g. time to establish new connection).</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>True if data had been sent, otherwise False.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>bool</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="tcp_socket.tcp_client">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">tcp_socket.</span></span><span class="sig-name descname"><span class="pre">tcp_client</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">host</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rx_tx_log_lvl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">20</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_client" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#tcp_socket.tcp_base" title="tcp_socket.tcp_base"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_base</span></code></a></p>
<p>This class creates a tcp-client for transfering a serial stream of bytes (characters). See also parent <a class="reference internal" href="#tcp_socket.tcp_base" title="tcp_socket.tcp_base"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_base</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>host</strong> (<em>str</em>) The host IP for the TCP socket functionality</p></li>
<li><p><strong>port</strong> (<em>int</em>) The port for the TCP socket functionality</p></li>
<li><p><strong>channel_name</strong> (<em>str</em>) The name for the logging channel</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You need a running <a class="reference internal" href="#tcp_socket.tcp_server" title="tcp_socket.tcp_server"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_server</span></code></a> listening at the given IP and Port to be able to communicate.</p>
</div>
<p><strong>Example:</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">sys</span> <span class="c1"># nopep8</span>
<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;../..&#39;</span><span class="p">)</span> <span class="c1"># nopep8</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">time</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">tcp_socket</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">report</span>
<span class="k">def</span><span class="w"> </span><span class="nf">mirror_callback</span><span class="p">(</span><span class="n">tcp</span><span class="p">):</span>
<span class="n">tcp</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">tcp</span><span class="o">.</span><span class="n">receive</span><span class="p">())</span>
<span class="n">report</span><span class="o">.</span><span class="n">default_logging_config</span><span class="p">()</span>
<span class="c1"># Start the server</span>
<span class="n">s</span> <span class="o">=</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">tcp_server</span><span class="p">(</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="mi">17000</span><span class="p">)</span>
<span class="n">s</span><span class="o">.</span><span class="n">register_callback</span><span class="p">(</span><span class="n">mirror_callback</span><span class="p">)</span>
<span class="c1"># Start the clien</span>
<span class="n">c</span> <span class="o">=</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">tcp_client</span><span class="p">(</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="mi">17000</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="sa">b</span><span class="s1">&#39;abc&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;The Client received: </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="nb">repr</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">receive</span><span class="p">()))</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Server</span> <span class="n">listening</span> <span class="n">to</span> <span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17000</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">established</span><span class="o">...</span> <span class="p">(</span><span class="kn">from</span><span class="w"> </span><span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17000</span><span class="p">)</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">established</span><span class="o">...</span> <span class="p">(</span><span class="n">to</span> <span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17000</span><span class="p">)</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">The</span> <span class="n">Client</span> <span class="n">received</span><span class="p">:</span> <span class="sa">b</span><span class="s1">&#39;abc&#39;</span>
</pre></div>
</div>
<dl class="py attribute">
<dt class="sig sig-object py" id="tcp_socket.tcp_client.IS_CLIENT">
<span class="sig-name descname"><span class="pre">IS_CLIENT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#tcp_socket.tcp_client.IS_CLIENT" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="tcp_socket.tcp_client.reconnect">
<span class="sig-name descname"><span class="pre">reconnect</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_client.reconnect" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="tcp_socket.tcp_client_stp">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">tcp_socket.</span></span><span class="sig-name descname"><span class="pre">tcp_client_stp</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">host</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_client_stp" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#tcp_socket.tcp_client" title="tcp_socket.tcp_client"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_client</span></code></a>, <a class="reference internal" href="#tcp_socket.tcp_base_stp" title="tcp_socket.tcp_base_stp"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_base_stp</span></code></a></p>
<p>This class creates a tcp-client for transfering a message. The bytes will be packed on send and unpacked on receive. See also parents <a class="reference internal" href="#tcp_socket.tcp_client" title="tcp_socket.tcp_client"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_client</span></code></a> and <a class="reference internal" href="#tcp_socket.tcp_base_stp" title="tcp_socket.tcp_base_stp"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_base_stp</span></code></a>.
See <code class="xref py py-mod docutils literal notranslate"><span class="pre">stringtools.stp</span></code> for more information on packing and unpacking.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>host</strong> (<em>str</em>) The host IP for the TCP socket functionality</p></li>
<li><p><strong>port</strong> (<em>int</em>) The port for the TCP socket functionality</p></li>
<li><p><strong>channel_name</strong> (<em>str</em>) The name for the logging channel</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You need a running <a class="reference internal" href="#tcp_socket.tcp_server_stp" title="tcp_socket.tcp_server_stp"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_server_stp</span></code></a> listening at the given IP and Port to be able to communicate.</p>
</div>
<p><strong>Example:</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">sys</span> <span class="c1"># nopep8</span>
<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;../..&#39;</span><span class="p">)</span> <span class="c1"># nopep8</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">tcp_socket</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">report</span>
<span class="k">def</span><span class="w"> </span><span class="nf">mirror_callback</span><span class="p">(</span><span class="n">tcp</span><span class="p">):</span>
<span class="n">tcp</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">tcp</span><span class="o">.</span><span class="n">receive</span><span class="p">())</span>
<span class="n">logger</span> <span class="o">=</span> <span class="n">report</span><span class="o">.</span><span class="n">default_logging_config</span><span class="p">()</span>
<span class="c1"># Start the server</span>
<span class="n">s</span> <span class="o">=</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">tcp_server_stp</span><span class="p">(</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="mi">17017</span><span class="p">)</span>
<span class="n">s</span><span class="o">.</span><span class="n">register_callback</span><span class="p">(</span><span class="n">mirror_callback</span><span class="p">)</span>
<span class="c1"># Start the client</span>
<span class="n">c</span> <span class="o">=</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">tcp_client_stp</span><span class="p">(</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="mi">17017</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="sa">b</span><span class="s1">&#39;abc&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;The Client received: </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="nb">repr</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">receive</span><span class="p">()))</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Server</span> <span class="n">listening</span> <span class="n">to</span> <span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17017</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">established</span><span class="o">...</span> <span class="p">(</span><span class="n">to</span> <span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17017</span><span class="p">)</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">established</span><span class="o">...</span> <span class="p">(</span><span class="kn">from</span><span class="w"> </span><span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17017</span><span class="p">)</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(7): 3a 3c 61 62 63 3a 3e&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(7): 3a 3c 61 62 63 3a 3e&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_IDLE</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_1</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">start</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">c</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_1</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">end</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">e</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">storing</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_IDLE</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">message</span> <span class="n">identified</span> <span class="o">-</span> <span class="p">(</span><span class="mi">3</span><span class="p">):</span> <span class="mi">61</span> <span class="mi">62</span> <span class="mi">63</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(7): 3a 3c 61 62 63 3a 3e&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(7): 3a 3c 61 62 63 3a 3e&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_IDLE</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_1</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">start</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">c</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_1</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">end</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">e</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">storing</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_IDLE</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">message</span> <span class="n">identified</span> <span class="o">-</span> <span class="p">(</span><span class="mi">3</span><span class="p">):</span> <span class="mi">61</span> <span class="mi">62</span> <span class="mi">63</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">The</span> <span class="n">Client</span> <span class="n">received</span><span class="p">:</span> <span class="sa">b</span><span class="s1">&#39;abc&#39;</span>
</pre></div>
</div>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="tcp_socket.tcp_server">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">tcp_socket.</span></span><span class="sig-name descname"><span class="pre">tcp_server</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">host</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rx_tx_log_lvl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">20</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_server" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#tcp_socket.tcp_base" title="tcp_socket.tcp_base"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_base</span></code></a></p>
<p>This class creates a tcp-server for transfering a serial stream of bytes (characters). See also parent <a class="reference internal" href="#tcp_socket.tcp_base" title="tcp_socket.tcp_base"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_base</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>host</strong> (<em>str</em>) The host IP for the TCP socket functionality</p></li>
<li><p><strong>port</strong> (<em>int</em>) The port for the TCP socket functionality</p></li>
<li><p><strong>channel_name</strong> (<em>str</em>) The name for the logging channel</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You need a <a class="reference internal" href="#tcp_socket.tcp_client" title="tcp_socket.tcp_client"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_client</span></code></a> to communicate with the server.</p>
</div>
<p><strong>Example:</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">sys</span> <span class="c1"># nopep8</span>
<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;../..&#39;</span><span class="p">)</span> <span class="c1"># nopep8</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">time</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">tcp_socket</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">report</span>
<span class="k">def</span><span class="w"> </span><span class="nf">mirror_callback</span><span class="p">(</span><span class="n">tcp</span><span class="p">):</span>
<span class="n">tcp</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">tcp</span><span class="o">.</span><span class="n">receive</span><span class="p">())</span>
<span class="n">report</span><span class="o">.</span><span class="n">default_logging_config</span><span class="p">()</span>
<span class="c1"># Start the server</span>
<span class="n">s</span> <span class="o">=</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">tcp_server</span><span class="p">(</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="mi">17000</span><span class="p">)</span>
<span class="n">s</span><span class="o">.</span><span class="n">register_callback</span><span class="p">(</span><span class="n">mirror_callback</span><span class="p">)</span>
<span class="c1"># Start the clien</span>
<span class="n">c</span> <span class="o">=</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">tcp_client</span><span class="p">(</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="mi">17000</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="sa">b</span><span class="s1">&#39;abc&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;The Client received: </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="nb">repr</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">receive</span><span class="p">()))</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Server</span> <span class="n">listening</span> <span class="n">to</span> <span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17000</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">established</span><span class="o">...</span> <span class="p">(</span><span class="kn">from</span><span class="w"> </span><span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17000</span><span class="p">)</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">established</span><span class="o">...</span> <span class="p">(</span><span class="n">to</span> <span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17000</span><span class="p">)</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">The</span> <span class="n">Client</span> <span class="n">received</span><span class="p">:</span> <span class="sa">b</span><span class="s1">&#39;abc&#39;</span>
</pre></div>
</div>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="tcp_socket.tcp_server_stp">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">tcp_socket.</span></span><span class="sig-name descname"><span class="pre">tcp_server_stp</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">host</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tcp_socket.tcp_server_stp" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#tcp_socket.tcp_server" title="tcp_socket.tcp_server"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_server</span></code></a>, <a class="reference internal" href="#tcp_socket.tcp_base_stp" title="tcp_socket.tcp_base_stp"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_base_stp</span></code></a></p>
<p>This class creates a tcp-server for transfering a message. The bytes will be packed on send and unpacked on receive. See also parents <a class="reference internal" href="#tcp_socket.tcp_server" title="tcp_socket.tcp_server"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_server</span></code></a> and <a class="reference internal" href="#tcp_socket.tcp_base_stp" title="tcp_socket.tcp_base_stp"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_base_stp</span></code></a>.
See <code class="xref py py-mod docutils literal notranslate"><span class="pre">stringtools.stp</span></code> for more information on packing and unpacking.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>host</strong> (<em>str</em>) The host IP for the TCP socket functionality</p></li>
<li><p><strong>port</strong> (<em>int</em>) The port for the TCP socket functionality</p></li>
<li><p><strong>channel_name</strong> (<em>str</em>) The name for the logging channel</p></li>
</ul>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You need a <a class="reference internal" href="#tcp_socket.tcp_client_stp" title="tcp_socket.tcp_client_stp"><code class="xref py py-class docutils literal notranslate"><span class="pre">tcp_client_stp</span></code></a> to communicate with the server.</p>
</div>
<p><strong>Example:</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">sys</span> <span class="c1"># nopep8</span>
<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;../..&#39;</span><span class="p">)</span> <span class="c1"># nopep8</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">tcp_socket</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">report</span>
<span class="k">def</span><span class="w"> </span><span class="nf">mirror_callback</span><span class="p">(</span><span class="n">tcp</span><span class="p">):</span>
<span class="n">tcp</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">tcp</span><span class="o">.</span><span class="n">receive</span><span class="p">())</span>
<span class="n">logger</span> <span class="o">=</span> <span class="n">report</span><span class="o">.</span><span class="n">default_logging_config</span><span class="p">()</span>
<span class="c1"># Start the server</span>
<span class="n">s</span> <span class="o">=</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">tcp_server_stp</span><span class="p">(</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="mi">17017</span><span class="p">)</span>
<span class="n">s</span><span class="o">.</span><span class="n">register_callback</span><span class="p">(</span><span class="n">mirror_callback</span><span class="p">)</span>
<span class="c1"># Start the client</span>
<span class="n">c</span> <span class="o">=</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">tcp_client_stp</span><span class="p">(</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span> <span class="mi">17017</span><span class="p">)</span>
<span class="n">c</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="sa">b</span><span class="s1">&#39;abc&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;The Client received: </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="nb">repr</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">receive</span><span class="p">()))</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Server</span> <span class="n">listening</span> <span class="n">to</span> <span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17017</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">established</span><span class="o">...</span> <span class="p">(</span><span class="n">to</span> <span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17017</span><span class="p">)</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">established</span><span class="o">...</span> <span class="p">(</span><span class="kn">from</span><span class="w"> </span><span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">17017</span><span class="p">)</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">receive</span><span class="o">-</span><span class="n">buffer</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(7): 3a 3c 61 62 63 3a 3e&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(7): 3a 3c 61 62 63 3a 3e&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_IDLE</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_1</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">start</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">c</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_1</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">end</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">e</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">storing</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_IDLE</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">message</span> <span class="n">identified</span> <span class="o">-</span> <span class="p">(</span><span class="mi">3</span><span class="p">):</span> <span class="mi">61</span> <span class="mi">62</span> <span class="mi">63</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(7): 3a 3c 61 62 63 3a 3e&quot;</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">server</span><span class="p">:</span> <span class="n">TX</span> <span class="o">-&gt;</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(7): 3a 3c 61 62 63 3a 3e&quot;</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_IDLE</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_1</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">start</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">c</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_1</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_STORE_DATA</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">data</span> <span class="n">sync</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_STORE_DATA</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_ESCAPE_2</span>
<span class="n">DEBUG</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">end</span> <span class="n">pattern</span> <span class="p">(</span><span class="mi">3</span><span class="n">a</span> <span class="mi">3</span><span class="n">e</span><span class="p">)</span> <span class="n">received</span> <span class="o">=&gt;</span> <span class="n">storing</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">changing</span> <span class="n">state</span> <span class="n">STP_STATE_ESCAPE_2</span> <span class="o">-&gt;</span> <span class="n">STP_STATE_IDLE</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">stringtools</span><span class="o">.</span><span class="n">stp</span> <span class="o">-</span> <span class="n">STP</span><span class="p">:</span> <span class="n">message</span> <span class="n">identified</span> <span class="o">-</span> <span class="p">(</span><span class="mi">3</span><span class="p">):</span> <span class="mi">61</span> <span class="mi">62</span> <span class="mi">63</span>
<span class="n">INFO</span> <span class="o">-</span> <span class="n">tcp_socket</span><span class="o">.</span><span class="n">all_others</span> <span class="o">-</span> <span class="n">comm</span><span class="o">-</span><span class="n">client</span><span class="p">:</span> <span class="n">RX</span> <span class="o">&lt;-</span> <span class="s2">&quot;(3): 61 62 63&quot;</span>
<span class="n">The</span> <span class="n">Client</span> <span class="n">received</span><span class="p">:</span> <span class="sa">b</span><span class="s1">&#39;abc&#39;</span>
</pre></div>
</div>
</dd></dl>
</section>
@ -137,6 +694,45 @@
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<div>
<h3><a href="#">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">tcp_socket package</a><ul>
<li><a class="reference internal" href="#tcp-socket-tcp-socket">tcp_socket (TCP Socket)</a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base"><code class="docutils literal notranslate"><span class="pre">tcp_base</span></code></a><ul>
<li><a class="reference internal" href="#tcp_socket.tcp_base.COM_TIMEOUT"><code class="docutils literal notranslate"><span class="pre">tcp_base.COM_TIMEOUT</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.DEFAULT_CHANNEL_NAME"><code class="docutils literal notranslate"><span class="pre">tcp_base.DEFAULT_CHANNEL_NAME</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">tcp_base.IS_CLIENT</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.RX_LENGTH"><code class="docutils literal notranslate"><span class="pre">tcp_base.RX_LENGTH</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.client_address"><code class="docutils literal notranslate"><span class="pre">tcp_base.client_address()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.close"><code class="docutils literal notranslate"><span class="pre">tcp_base.close()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.init_channel_name"><code class="docutils literal notranslate"><span class="pre">tcp_base.init_channel_name()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.is_connected"><code class="docutils literal notranslate"><span class="pre">tcp_base.is_connected()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.receive"><code class="docutils literal notranslate"><span class="pre">tcp_base.receive()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.register_callback"><code class="docutils literal notranslate"><span class="pre">tcp_base.register_callback()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.register_connect_callback"><code class="docutils literal notranslate"><span class="pre">tcp_base.register_connect_callback()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.register_disconnect_callback"><code class="docutils literal notranslate"><span class="pre">tcp_base.register_disconnect_callback()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base.send"><code class="docutils literal notranslate"><span class="pre">tcp_base.send()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#tcp_socket.tcp_base_stp"><code class="docutils literal notranslate"><span class="pre">tcp_base_stp</span></code></a><ul>
<li><a class="reference internal" href="#tcp_socket.tcp_base_stp.receive"><code class="docutils literal notranslate"><span class="pre">tcp_base_stp.receive()</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_base_stp.send"><code class="docutils literal notranslate"><span class="pre">tcp_base_stp.send()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#tcp_socket.tcp_client"><code class="docutils literal notranslate"><span class="pre">tcp_client</span></code></a><ul>
<li><a class="reference internal" href="#tcp_socket.tcp_client.IS_CLIENT"><code class="docutils literal notranslate"><span class="pre">tcp_client.IS_CLIENT</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_client.reconnect"><code class="docutils literal notranslate"><span class="pre">tcp_client.reconnect()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#tcp_socket.tcp_client_stp"><code class="docutils literal notranslate"><span class="pre">tcp_client_stp</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_server"><code class="docutils literal notranslate"><span class="pre">tcp_server</span></code></a></li>
<li><a class="reference internal" href="#tcp_socket.tcp_server_stp"><code class="docutils literal notranslate"><span class="pre">tcp_server_stp</span></code></a></li>
</ul>
</li>
</ul>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
@ -164,6 +760,9 @@
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><img src="_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">