blob: a136ee5fce9d3242c38c0649bb8dfef4e532377f [file] [log] [blame]
<!--
Documentation/_templates/layout.html
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership. The
ASF licenses this file to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance with the
License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE html>
<html class="writer-html5" lang="en">
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>telnetd Telnet server daemon &mdash; NuttX latest documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css" />
<link rel="shortcut icon" href="../../../_static/favicon.ico"/>
<script src="../../../_static/jquery.js"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script>
<script src="../../../_static/doctools.js"></script>
<script src="../../../_static/sphinx_highlight.js"></script>
<script src="../../../_static/clipboard.min.js"></script>
<script src="../../../_static/copybutton.js"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
<link rel="next" title="tftpc TFTP client" href="../tftpc/index.html" />
<link rel="prev" title="telnetc Telnet client library" href="../telnetc/index.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="../../../index.html" class="icon icon-home"> NuttX
</a>
<!-- this version selector is quite ugly, should be probably replaced by something
more modern -->
<div class="version-selector">
<select onchange="javascript:location.href = this.value;">
<option value="../../../../latest" selected="selected">latest</option>
<option value="../../../../10.0.0" >10.0.0</option>
<option value="../../../../10.0.1" >10.0.1</option>
<option value="../../../../10.1.0" >10.1.0</option>
<option value="../../../../10.2.0" >10.2.0</option>
<option value="../../../../10.3.0" >10.3.0</option>
<option value="../../../../11.0.0" >11.0.0</option>
<option value="../../../../12.0.0" >12.0.0</option>
<option value="../../../../12.1.0" >12.1.0</option>
<option value="../../../../12.2.0" >12.2.0</option>
<option value="../../../../12.2.1" >12.2.1</option>
<option value="../../../../12.3.0" >12.3.0</option>
<option value="../../../../12.4.0" >12.4.0</option>
<option value="../../../../12.5.0" >12.5.0</option>
<option value="../../../../12.5.1" >12.5.1</option>
<option value="../../../../12.6.0" >12.6.0</option>
<option value="../../../../12.7.0" >12.7.0</option>
<option value="../../../../12.8.0" >12.8.0</option>
<option value="../../../../12.9.0" >12.9.0</option>
<option value="../../../../12.10.0" >12.10.0</option>
<option value="../../../../12.11.0" >12.11.0</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" aria-label="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">
<p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../../index.html">Home</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../introduction/index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../quickstart/index.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../contributing/index.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../introduction/inviolables.html">The Inviolable Principles of NuttX</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../platforms/index.html">Supported Platforms</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../components/index.html">OS Components</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Applications</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../../audioutils/index.html">Audio Utility libraries</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../boot/index.html">Bootloader Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../benchmarks/index.html">Benchmark Applications</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../canutils/index.html">CAN Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../crypto/index.html">Cryptography Library Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../fsutils/index.html">File System Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../games/index.html">Games</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../graphics/index.html">Graphics Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../industry/index.html">Industrial Applications</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../inertial/index.html">Inertial Libraries Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../interpreters/index.html">Interpreters</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../logging/index.html">Logging Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../lte/index.html">LTE Libraries and NSH Add-Ons</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../math/index.html">Math Library Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../mlearing/index.html">Machine Learning Support</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../index.html">Network Utilities</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../chat/index.html"><code class="docutils literal notranslate"><span class="pre">chat</span></code> Chat tool</a></li>
<li class="toctree-l3"><a class="reference internal" href="../cjson/index.html"><code class="docutils literal notranslate"><span class="pre">cjson</span></code> cJSON library</a></li>
<li class="toctree-l3"><a class="reference internal" href="../codecs/index.html"><code class="docutils literal notranslate"><span class="pre">codecs</span></code> CODEC Library: Base64 coding, URL coding, MD5</a></li>
<li class="toctree-l3"><a class="reference internal" href="../cwebsocket/index.html"><code class="docutils literal notranslate"><span class="pre">cwebsocket</span></code> WebSocket Client Library</a></li>
<li class="toctree-l3"><a class="reference internal" href="../dhcp6c/index.html"><code class="docutils literal notranslate"><span class="pre">dhcp6c</span></code> DHCPv6 client</a></li>
<li class="toctree-l3"><a class="reference internal" href="../dhcpc/index.html"><code class="docutils literal notranslate"><span class="pre">dhcpc</span></code> DHCP client</a></li>
<li class="toctree-l3"><a class="reference internal" href="../dhcpd/index.html"><code class="docutils literal notranslate"><span class="pre">dhcpd</span></code> DHCP server</a></li>
<li class="toctree-l3"><a class="reference internal" href="../discover/index.html"><code class="docutils literal notranslate"><span class="pre">discover</span></code> Network Discovery Utility</a></li>
<li class="toctree-l3"><a class="reference internal" href="../esp8266/index.html"><code class="docutils literal notranslate"><span class="pre">esp8266</span></code> ESP8266</a></li>
<li class="toctree-l3"><a class="reference internal" href="../ftpc/index.html"><code class="docutils literal notranslate"><span class="pre">ftpc</span></code> FTP client</a></li>
<li class="toctree-l3"><a class="reference internal" href="../ftpd/index.html"><code class="docutils literal notranslate"><span class="pre">ftpd</span></code> FTP server</a></li>
<li class="toctree-l3"><a class="reference internal" href="../iper/index.html"><code class="docutils literal notranslate"><span class="pre">iperf</span></code> iperf</a></li>
<li class="toctree-l3"><a class="reference internal" href="../iptables/index.html"><code class="docutils literal notranslate"><span class="pre">iptables</span></code> iptables library</a></li>
<li class="toctree-l3"><a class="reference internal" href="../libcurl4nx/index.html"><code class="docutils literal notranslate"><span class="pre">libcurl4nx</span></code> cURL4nx HTTP client library</a></li>
<li class="toctree-l3"><a class="reference internal" href="../mqttc/index.html"><code class="docutils literal notranslate"><span class="pre">mqttc</span></code> MQTT-C library</a></li>
<li class="toctree-l3"><a class="reference internal" href="../netcat/index.html"><code class="docutils literal notranslate"><span class="pre">netcat</span></code> NetCat tool</a></li>
<li class="toctree-l3"><a class="reference internal" href="../netinit/index.html"><code class="docutils literal notranslate"><span class="pre">netinit</span></code> Network initialization</a></li>
<li class="toctree-l3"><a class="reference internal" href="../netlib/index.html"><code class="docutils literal notranslate"><span class="pre">netlib</span></code> Network support library</a></li>
<li class="toctree-l3"><a class="reference internal" href="../nng/index.html"><code class="docutils literal notranslate"><span class="pre">nng</span></code> Nanomsg NG</a></li>
<li class="toctree-l3"><a class="reference internal" href="../ntpclient/index.html"><code class="docutils literal notranslate"><span class="pre">ntpclient</span></code> NTP client</a></li>
<li class="toctree-l3"><a class="reference internal" href="../ping/index.html"><code class="docutils literal notranslate"><span class="pre">ping</span></code> ICMP ping support</a></li>
<li class="toctree-l3"><a class="reference internal" href="../pppd/index.html"><code class="docutils literal notranslate"><span class="pre">pppd</span></code> PPP server</a></li>
<li class="toctree-l3"><a class="reference internal" href="../ptpd/index.html"><code class="docutils literal notranslate"><span class="pre">ptpd</span></code> PTPD client/server</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rexec/index.html"><code class="docutils literal notranslate"><span class="pre">rexec</span></code> Remote execution client</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rexecd/index.html"><code class="docutils literal notranslate"><span class="pre">rexecd</span></code> Remote Execution Server</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rtptools/index.html"><code class="docutils literal notranslate"><span class="pre">rtptools</span></code> RTP Tools</a></li>
<li class="toctree-l3"><a class="reference internal" href="../smtp/index.html"><code class="docutils literal notranslate"><span class="pre">smtp</span></code> SMTP</a></li>
<li class="toctree-l3"><a class="reference internal" href="../telnetc/index.html"><code class="docutils literal notranslate"><span class="pre">telnetc</span></code> Telnet client library</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">telnetd</span></code> Telnet server daemon</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#tips-for-using-telnetd">Tips for Using Telnetd</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../tftpc/index.html"><code class="docutils literal notranslate"><span class="pre">tftpc</span></code> TFTP client</a></li>
<li class="toctree-l3"><a class="reference internal" href="../thttpd/index.html"><code class="docutils literal notranslate"><span class="pre">thttpd</span></code> THTTPD webserver</a></li>
<li class="toctree-l3"><a class="reference internal" href="../wakaama/index.html"><code class="docutils literal notranslate"><span class="pre">wakaama</span></code> Eclipse Wakaama (formerly liblwm2m) - LWM2M protocol</a></li>
<li class="toctree-l3"><a class="reference internal" href="../wakeonlan/index.html"><code class="docutils literal notranslate"><span class="pre">wakeonlan</span></code> WakeOnLAN support</a></li>
<li class="toctree-l3"><a class="reference internal" href="../webclient/index.html"><code class="docutils literal notranslate"><span class="pre">webclient</span></code> uIP web client</a></li>
<li class="toctree-l3"><a class="reference internal" href="../webserver/index.html"><code class="docutils literal notranslate"><span class="pre">webserver</span></code> uIP web server</a></li>
<li class="toctree-l3"><a class="reference internal" href="../xmlrpc/index.html"><code class="docutils literal notranslate"><span class="pre">xmlrpc</span></code> XML RPC library</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../nsh/index.html">NuttShell (NSH)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../sdr/index.html">Software Define Radio Libraries</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../system/index.html">System Libraries and NSH Add-Ons</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../testing/index.html">Testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../tools/index.html">Host Side Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../wireless/index.html">Wireless Libraries and NSH Add-Ons</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../examples/index.html">Examples</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../implementation/index.html">Implementation Details</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../reference/index.html">API Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../faq/index.html">FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../guides/index.html">Guides</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../glossary.html">Glossary</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../logos/index.html">NuttX Logos</a></li>
</ul>
</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="../../../index.html">NuttX</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="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../../index.html">Applications</a></li>
<li class="breadcrumb-item"><a href="../index.html">Network Utilities</a></li>
<li class="breadcrumb-item active"><code class="docutils literal notranslate"><span class="pre">telnetd</span></code> Telnet server daemon</li>
<li class="wy-breadcrumbs-aside">
<a href="../../../_sources/applications/netutils/telnetd/index.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="telnetd-telnet-server-daemon">
<h1><code class="docutils literal notranslate"><span class="pre">telnetd</span></code> Telnet server daemon<a class="headerlink" href="#telnetd-telnet-server-daemon" title="Permalink to this heading"></a></h1>
<p>This is the Telnet logic adapted from uIP and generalized for use as the front
end to any shell. The telnet daemon creates sessions that are “wrapped” as
character devices and mapped to <code class="docutils literal notranslate"><span class="pre">stdin</span></code>, <code class="docutils literal notranslate"><span class="pre">stdout</span></code> and <code class="docutils literal notranslate"><span class="pre">stderr</span></code>.
Now the telnet session can be inherited by spawned tasks.</p>
<section id="tips-for-using-telnetd">
<h2>Tips for Using Telnetd<a class="headerlink" href="#tips-for-using-telnetd" title="Permalink to this heading"></a></h2>
<p>Telnetd is set up to be the front end for a shell. The primary use of Telnetd in
NuttX is to support the NuttShell (NSH) Telnet front end. See
<code class="docutils literal notranslate"><span class="pre">apps/include/netutils/telnetd.h</span></code> for information about how to incorporate
Telnetd into your custom applications.</p>
<p>To enable and link the Telnetd daemon, you need to include the following in in
your defconfig file:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>CONFIG_NETUTILS_NETLIB=y
CONFIG_NETUTILS_TELNETD=y
</pre></div>
</div>
<p>Also if the Telnet console is enabled, make sure that you have the following set
in the NuttX configuration file or else the performance will be very bad
(because there will be only one character per TCP transfer):</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">CONFIG_STDIO_BUFFER_SIZE</span></code> – Some value <code class="docutils literal notranslate"><span class="pre">&gt;=</span> <span class="pre">64</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">CONFIG_STDIO_LINEBUFFER=y</span></code> – Since Telnetd is line oriented, line buffering
is optimal.</p></li>
</ul>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="../telnetc/index.html" class="btn btn-neutral float-left" title="telnetc Telnet client library" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="../tftpc/index.html" class="btn btn-neutral float-right" title="tftpc TFTP client" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2023, The Apache Software Foundation.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>