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-03-22 07:18:52 +00:00
< a href = "https://github.com/espressif/esp-protocols/blob/a838af4/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-03-22 07:18:52 +00:00
< p > ESP examples are based on standard asio < a class = "reference external" href = "https://github.com/espressif/esp-protocols/tree/a838af4/examples/../examples" > examples < / a > :< / p >
2023-01-13 13:59:52 +00:00
< ul class = "simple" >
2023-03-22 07:18:52 +00:00
< li > < p > < a class = "reference external" href = "https://github.com/espressif/esp-protocols/tree/a838af4/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/a838af4/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/a838af4/examples/../examples/asio_chat" > asio_chat < / a > < / p > < / li >
< li > < p > < a class = "reference external" href = "https://github.com/espressif/esp-protocols/tree/a838af4/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 >