Echo Server¶
Overview¶
The echo-server sample application for Zephyr implements a UDP/TCP server that complements the echo-client sample application: the echo-server listens for incoming IPv4 or IPv6 packets (sent by the echo client) and simply sends them back.
The source code for this sample application can be found at:
samples/net/echo_server
.
Requirements¶
Building and Running¶
There are multiple ways to use this application. One of the most common usage scenario is to run echo-server application inside QEMU. This is described in Networking with QEMU.
There are configuration files for different boards and setups in the echo-server directory:
prj.conf
Generic config file, normally you should use this.overlay-frdm_k64f_cc2520.conf
This overlay config enables support for IEEE 802.15.4 CC2520 and frdm_k64foverlay-frdm_k64f_mcr20a.conf
This overlay config enables support for IEEE 802.15.4 mcr20a and frdm_k64foverlay-ot.conf
This overlay config enables support for OpenThreadoverlay-enc28j60.conf
This overlay config enables support for enc28j60 ethernet board. This add-on board can be used for example with Arduino 101 board.overlay-cc2520.conf
This overlay config enables support for IEEE 802.15.4 cc2520 chip.overlay-bt.conf
This overlay config enables support for Bluetooth IPSP connectivity.overlay-qemu_802154.conf
This overlay config enables support for two QEMU’s when simulating IEEE 802.15.4 network that are connected together.overlay-tls.conf
This overlay config enables support for TLS.overlay-netusb.conf
This overlay config enables support for Ethernet over USB setup with supported boards. The setup is described in USB Device Networking
Build echo-server sample application like this:
# On Linux/macOS
cd $ZEPHYR_BASE/samples/net/echo_server
mkdir build && cd build
# On Windows
cd %ZEPHYR_BASE%\samples\net\echo_server
mkdir build & cd build
cmake -GNinja -DBOARD=<board to use> -DCONF_FILE=<config file to use> ..
ninja
Example building for the FRDM-K64F with TI CC2520 support:
cd $ZEPHYR_BASE/samples/net/echo_server
mkdir build && cd build
cmake -GNinja -DBOARD=frdm_k64f -DCONF_FILE="prj.conf overlay-frdm_k64f_cc2520.conf" ..
ninja run
Make can select the default configuration file based on the BOARD you’ve specified automatically so you might not always need to mention it.
Running echo-client in Linux Host¶
There is one useful testing scenario that can be used with Linux host. Here echo-server is run in QEMU and echo-client is run in Linux host.
To use QEMU for testing, follow the Networking with QEMU guide.
Run echo-server application in QEMU:
cd $ZEPHYR_BASE/samples/net/echo_server
mkdir build && cd build
cmake -GNinja -DBOARD=qemu_x86 ..
ninja run
In a terminal window:
$ sudo ./echo-client -i tap0 2001:db8::1
Note that echo-server must be running in QEMU before you start the echo-client application in host terminal window.