David Sidrane 0d06c1cb83 [REJECTED] netinit:Network Monitor add a polled option. (#8) 3 年之前
..
chat ec339bc49a Makefiles: Gregory Nutt: update licenses to Apache 3 年之前
cjson e78ef68927 netutils: fix relative path CI error 3 年之前
codecs ec339bc49a Makefiles: Gregory Nutt: update licenses to Apache 3 年之前
dhcpc 7fdd751b7a dhcpc: fix potential invalid memory reads 3 年之前
dhcpd 0a6b1f55ab netutils: update licenses to Apache 3 年之前
discover e78ef68927 netutils: fix relative path CI error 3 年之前
esp8266 ec339bc49a Makefiles: Gregory Nutt: update licenses to Apache 3 年之前
ftpc 7b074bcf66 netutils/ftpc: ftpc_connect: Fixed invalid socket close. 3 年之前
ftpd 0a6b1f55ab netutils: update licenses to Apache 3 年之前
iperf 920d925806 iperf: Fix an unused function warning seen with clang 3 年之前
libcurl4nx 5572819bb1 netutils: nxstyle fixes 3 年之前
mqttc 0f7ee888d4 neutils/mqttc: Update to version 1.1.5 3 年之前
netcat e78ef68927 netutils: fix relative path CI error 3 年之前
netinit 0d06c1cb83 [REJECTED] netinit:Network Monitor add a polled option. (#8) 3 年之前
netlib e78ef68927 netutils: fix relative path CI error 3 年之前
ntpclient 0a6b1f55ab netutils: update licenses to Apache 3 年之前
ping ec339bc49a Makefiles: Gregory Nutt: update licenses to Apache 3 年之前
pppd e78ef68927 netutils: fix relative path CI error 3 年之前
smtp ec339bc49a Makefiles: Gregory Nutt: update licenses to Apache 3 年之前
telnetc ec339bc49a Makefiles: Gregory Nutt: update licenses to Apache 3 年之前
telnetd 55f921841d netutils/telnetd: use a larger buffer for a 64-bit pointer 3 年之前
tftpc 5572819bb1 netutils: nxstyle fixes 3 年之前
thttpd e78ef68927 netutils: fix relative path CI error 3 年之前
usrsock_rpmsg c7f28f5f9e usrsock/rpmsg/server: select eventfd by default 3 年之前
wakeonlan bb1e93cb67 netutils/wakeonlan: Remove the tab from the blank line in Kconfig 3 年之前
webclient ce2b9519a7 webclient: Add a way to specify timeout 3 年之前
webserver e78ef68927 netutils: fix relative path CI error 3 年之前
xmlrpc bde535b436 Makefile: Max Holtzberg: update licenses to Apache 3 年之前
.gitignore 69f013e74e build: Remve the unnecessary .gitignore 4 年之前
Make.defs ec339bc49a Makefiles: Gregory Nutt: update licenses to Apache 3 年之前
Makefile ec339bc49a Makefiles: Gregory Nutt: update licenses to Apache 3 年之前
README.md 21049ece6e Rewritten READMEs to Markdown 4 年之前

README.md

Network Utilities

Contents

  • uIP Applications
  • Other Network Applications
  • Tips for Using Telnetd
  • Tips for Using DHCPC

uIP Applications

This directory contains most of the network applications contained under the uIP-1.0 apps directory. As the uIP apps/README.md says, these applications are not all heavily tested. These uIP-based apps include:

  • dhcpc – Dynamic Host Configuration Protocol (DHCP) client. See apps/include/netutils/dhcpc.h for interface information.

  • smtp – Simple Mail Transfer Protocol (SMTP) client. See apps/include/netutils/smtp.h for interface information.

  • webclient – HTTP web client. See apps/include/netutils/webclient.h for interface information.

  • webserver – HTTP web server. See apps/include/netutils/httpd.h for interface information.

You may find additional information on these apps in the uIP forum accessible through: http://www.sics.se/~adam/uip/index.php/Main_Page. Some of these (such as the uIP web server) have grown some additional functionality due primarily to NuttX user contributions.

Other Network Applications

Additional applications that were not part of uIP (but which are highly influenced by uIP) include:

  • dhcpd – Dynamic Host Configuration Protocol (DHCP) server. See apps/include/netutils/dhcpd.h for interface information.

  • discover – This daemon is useful for discovering devices in local networks, especially with DHCP configured devices. It listens for UDP broadcasts which also can include a device class so that groups of devices can be discovered. It is also possible to address all classes with a kind of broadcast discover. (Contributed by Max Holtzberg).

  • esp8266 – An ESP8266 networking layer contributed by Pierre-Noel Bouteville.

  • json – cJSON is an ultra-lightweight, portable, single-file, simple-as-can-be ANSI-C compliant JSON parser, under MIT license. Embeddable Lightweight XML-RPC Server discussed at http://www.drdobbs.com/web-development/an-embeddable-lightweight-xml-rpc-server/184405364.

This code was taken from http://sourceforge.net/projects/cjson/ and adapted for NuttX by Darcy Gong.

  • tftpc – TFTP client. See apps/include/netutils/tftp.h for interface information.

  • telnetc – This is a port of libtelnet to NuttX. This is a public domain Telnet client library available from https://github.com/seanmiddleditch/libtelnet modified for use with NuttX. Original Authors: Sean Middleditch sean@sourcemud.org, Jack Kelly endgame.dos@gmail.com and Katherine Flavel kate@elide.org

  • telnetd – TELNET server. 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 stdin, stdout and stderr. Now the telnet session can be inherited by spawned tasks.

  • ftpc – FTP client. See apps/include/netutils/ftpc.h for interface information.

  • ftpd – FTP server. See apps/include/netutils/ftpd.h for interface information.

  • ntpclient – This is a fragmentary NTP client. It neither well-tested nor mature nor complete at this point in time.

  • thttpd – This is a port of Jef Poskanzer's THTTPD HTPPD server. See http://acme.com/software/thttpd/ for general THTTPD information. See apps/include/netutils/thttpd.h for interface information. Applications using this thttpd will need to provide the following definitions in the defconfig file to select the appropriate netutils libraries:

  CONFIG_NETUTILS_NETLIB=y
  CONFIG_NETUTILS_THTTPD=y

Current ping/ping6 logic in NSH makes illegal calls into the OS in order to implement ping/ping6. One correct implementation would be to use raw sockets to implement ping/ping6 as a user application. This is a first cut at such an implementation.

Tips for Using Telnetd

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 apps/include/netutils/telnetd.h for information about how to incorporate Telnetd into your custom applications.

To enable and link the Telnetd daemon, you need to include the following in in your defconfig file:

CONFIG_NETUTILS_NETLIB=y
CONFIG_NETUTILS_TELNETD=y

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):

  • CONFIG_STDIO_BUFFER_SIZE – Some value >= 64.
  • CONFIG_STDIO_LINEBUFFER=y – Since Telnetd is line oriented, line buffering is optimal.

Tips for Using DHCPC

If you use DHCPC/D, then some special configuration network options are required. These include:

  • CONFIG_NET=y
  • CONFIG_NET_UDP=y – UDP support is required for DHCP (as well as various other UDP-related configuration settings).
  • CONFIG_NET_BROADCAST=y – UDP broadcast support is needed.
  • CONFIG_NET_ETH_PKTSIZE=650 or larger. The client must be prepared to receive DHCP messages of up to 576 bytes (excluding Ethernet, IP or UDP headers and FCS). Note: Note that the actual MTU setting will depend upon the specific link protocol. Here Ethernet is indicated.