2023-01-13 13:59:52 +00:00
<!DOCTYPE html>
< html class = "writer-html5" lang = "en" >
< head >
< meta charset = "utf-8" />< meta name = "generator" content = "Docutils 0.17.1: http://docutils.sourceforge.net/" />
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" />
< title > ASIO port - ESP32 - — ESP-Protocols latest documentation</ title >
< link rel = "stylesheet" href = "_static/pygments.css" type = "text/css" />
< link rel = "stylesheet" href = "_static/css/theme.css" type = "text/css" />
< link rel = "stylesheet" href = "_static/copybutton.css" type = "text/css" />
< link rel = "stylesheet" href = "_static/theme_overrides.css" type = "text/css" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
< script data-url_root = "./" id = "documentation_options" src = "_static/documentation_options.js" ></ script >
< script src = "_static/jquery.js" ></ script >
< script src = "_static/underscore.js" ></ script >
< script src = "_static/doctools.js" ></ script >
< script src = "_static/clipboard.min.js" ></ script >
< script src = "_static/copybutton.js" ></ script >
< script src = "_static/js/theme.js" ></ script >
< script type = "text/javascript" >
DOCUMENTATION_OPTIONS . PAGENAME = 'index' ;
DOCUMENTATION_OPTIONS . PROJECT_SLUG = 'esp-idf' ;
DOCUMENTATION_OPTIONS . LATEST_BRANCH_NAME = 'master' ;
DOCUMENTATION_OPTIONS . VERSIONS_URL = 'https://github.com/espressif/esp-protocols/docs/docs_versions.js' ;
DOCUMENTATION_OPTIONS . LANGUAGES = [ "en" , "zh_CN" ];
DOCUMENTATION_OPTIONS . IDF_TARGET = 'esp32' ;
DOCUMENTATION_OPTIONS . HAS_IDF_TARGETS = [ "esp32" ]
DOCUMENTATION_OPTIONS . RELEASE = 'latest' ;
</ script >
< script type = "text/javascript" src = "https://github.com/espressif/esp-protocols/docs/docs_versions.js" ></ script >
< link rel = "index" title = "Index" href = "genindex.html" />
< link rel = "search" title = "Search" href = "search.html" />
</ head >
< body class = "wy-body-for-nav" >
< div class = "wy-grid-for-nav" >
< nav data-toggle = "wy-nav-shift" class = "wy-nav-side" >
< div class = "wy-side-scroll" >
< div class = "wy-side-nav-search" >
< a href = "#" class = "icon icon-home" > ESP-Protocols
< img src = "_static/espressif-logo.svg" class = "logo" alt = "Logo" />
</ a >
< div class = "selectors" >
< select id = "target-select" style = "width: 150px;" hidden >
< option value = "" disabled selected > Choose target...</ option >
</ select >
</ div >
< div class = "selectors" >
< select id = "version-select" style = "width: 150px;" hidden >
< option value = "" disabled selected > Choose version...</ option >
</ select >
</ div >
< div role = "search" >
< form id = "rtd-search-form" class = "wy-form" action = "search.html" method = "get" >
< input type = "text" name = "q" placeholder = "Search docs" />
< input type = "hidden" name = "check_keywords" value = "yes" />
< input type = "hidden" name = "area" value = "default" />
</ form >
</ div >
</ div >< div class = "wy-menu wy-menu-vertical" data-spy = "affix" role = "navigation" aria-label = "Navigation menu" >
<!-- Local TOC -->
< div class = "local-toc" >< ul >
< li >< a class = "reference internal" href = "#" > ASIO port</ a >< ul >
< li >< a class = "reference internal" href = "#overview" > Overview</ a >< ul >
< li >< a class = "reference internal" href = "#asio-documentation" > ASIO documentation</ a ></ li >
< li >< a class = "reference internal" href = "#supported-features" > Supported features</ a ></ li >
</ ul >
</ li >
< li >< a class = "reference internal" href = "#application-example" > Application Example</ a ></ li >
</ ul >
</ li >
</ ul >
</ div >
</ div >
</ div >
</ nav >
< section data-toggle = "wy-nav-shift" class = "wy-nav-content-wrap" >< nav class = "wy-nav-top" aria-label = "Mobile navigation menu" >
< i data-toggle = "wy-nav-top" class = "fa fa-bars" ></ i >
< a href = "#" > ESP-Protocols</ a >
</ nav >
< div class = "wy-nav-content" >
< div class = "rst-content" >
< div role = "navigation" aria-label = "Page navigation" >
< ul class = "wy-breadcrumbs" >
< li >< a href = "#" class = "icon icon-home" ></ a > » </ li >
< li > ASIO port</ li >
< li class = "wy-breadcrumbs-aside" >
2023-02-17 14:10:01 +00:00
< a href = "https://github.com/espressif/esp-protocols/blob/9ae88aa/docs/en/index.rst" class = "fa fa-github" > Edit on GitHub</ a >
2023-01-13 13:59:52 +00:00
</ li >
</ ul >
< hr />
</ div >
< div role = "main" class = "document" itemscope = "itemscope" itemtype = "http://schema.org/Article" >
< div itemprop = "articleBody" >
< section id = "asio-port" >
< h1 > ASIO port< a class = "headerlink" href = "#asio-port" title = "Permalink to this headline" > </ a ></ h1 >
< section id = "overview" >
< h2 > Overview< a class = "headerlink" href = "#overview" title = "Permalink to this headline" > </ a ></ h2 >
< p > Asio is a cross-platform C++ library, see < a class = "reference external" href = "https://think-async.com/Asio/" > https://think-async.com/Asio/</ a > . It provides a consistent asynchronous model using a modern C++ approach.</ p >
< section id = "asio-documentation" >
< h3 > ASIO documentation< a class = "headerlink" href = "#asio-documentation" title = "Permalink to this headline" > </ a ></ h3 >
< p > Please refer to the original asio documentation at < a class = "reference external" href = "https://think-async.com/Asio/Documentation" > https://think-async.com/Asio/Documentation</ a > .
Asio also comes with a number of examples which could be find under Documentation/Examples on that web site.</ p >
</ section >
< section id = "supported-features" >
< h3 > Supported features< a class = "headerlink" href = "#supported-features" title = "Permalink to this headline" > </ a ></ h3 >
< p > ESP platform port currently supports only network asynchronous socket operations; does not support serial port.
SSL/TLS support is disabled by default and could be enabled in component configuration menu by choosing TLS library from</ p >
< ul class = "simple" >
< li >< p > mbedTLS with OpenSSL translation layer (default option)</ p ></ li >
< li >< p > wolfSSL</ p ></ li >
</ ul >
< p > SSL support is very basic at this stage and it does include following features:</ p >
< ul class = "simple" >
< li >< p > Verification callbacks</ p ></ li >
< li >< p > DH property files</ p ></ li >
< li >< p > Certificates/private keys file APIs</ p ></ li >
</ ul >
< p > Internal asio settings for ESP include</ p >
< ul class = "simple" >
< li >< p > EXCEPTIONS are enabled in ASIO if enabled in menuconfig</ p ></ li >
< li >< p > TYPEID is enabled in ASIO if enabled in menuconfig</ p ></ li >
</ ul >
</ section >
</ section >
< section id = "application-example" >
< h2 > Application Example< a class = "headerlink" href = "#application-example" title = "Permalink to this headline" > </ a ></ h2 >
2023-02-17 14:10:01 +00:00
< p > ESP examples are based on standard asio < a class = "reference external" href = "https://github.com/espressif/esp-protocols/tree/9ae88aa/examples/../examples" > examples </ a > :</ p >
2023-01-13 13:59:52 +00:00
< ul class = "simple" >
2023-02-17 14:10:01 +00:00
< li >< p >< a class = "reference external" href = "https://github.com/espressif/esp-protocols/tree/9ae88aa/examples/../examples/udp_echo_server" > udp_echo_server </ a ></ p ></ li >
< li >< p >< a class = "reference external" href = "https://github.com/espressif/esp-protocols/tree/9ae88aa/examples/../examples/tcp_echo_server" > tcp_echo_server </ a ></ p ></ li >
< li >< p >< a class = "reference external" href = "https://github.com/espressif/esp-protocols/tree/9ae88aa/examples/../examples/asio_chat" > asio_chat </ a ></ p ></ li >
< li >< p >< a class = "reference external" href = "https://github.com/espressif/esp-protocols/tree/9ae88aa/examples/../examples/ssl_client_server" > ssl_client_server </ a ></ p ></ li >
2023-01-13 13:59:52 +00:00
</ ul >
< p > Please refer to the specific example README.md for details</ p >
</ section >
</ section >
</ div >
</ div >
< footer >
< hr />
< div role = "contentinfo" >
< p > © Copyright 2016 - 2022, Espressif Systems (Shanghai) Co., Ltd.</ p >
</ div >
< ul class = "footer" >
< li >
Built with < a href = "http://sphinx-doc.org/" > Sphinx</ a > using a < a href = "https://github.com/espressif/sphinx_idf_theme" > theme</ a > based on < a href = "https://github.com/readthedocs/sphinx_rtd_theme" > Read the Docs Sphinx Theme</ a > .
</ li >
< li class = "footer-aside" >
< a href = "./esp-idf-en-master-esp32.pdf" class = "fa fa-file-pdf-o" > Download PDF</ a >
</ li >
</ ul >
</ footer >
</ div >
</ div >
</ section >
</ div >
< script >
jQuery ( function () {
SphinxRtdTheme . Navigation . enable ( true );
});
</ script >
</ body >
</ html >< script type = text/javascript >
window . onload = ( function () {
var myAnchor = document . getElementById ( 'version-select' );
var mySpan = document . createElement ( 'input' );
mySpan . setAttribute ( 'type' , 'text' );
mySpan . setAttribute ( 'maxLength' , '10' );
mySpan . value = 'latest' ;
mySpan . setAttribute ( 'disabled' , true );
myAnchor . parentNode . replaceChild ( mySpan , myAnchor );
var myAnchor = document . getElementById ( 'target-select' );
var mySpan = document . createElement ( 'input' );
mySpan . setAttribute ( 'type' , 'text' );
mySpan . setAttribute ( 'maxLength' , '10' );
mySpan . value = 'all targets' ;
mySpan . setAttribute ( 'disabled' , true );
myAnchor . parentNode . replaceChild ( mySpan , myAnchor );
})();
</ script >