zephyr/samples/net/echo_server
Robert Lubos ff0950a940 samples: net: Fix echo_client/echo_server TLS config files
Current config files for TLS qemu_x86 contain unrecognized
`CONFIG_RAM_SIZE`, which causes cmake to fail during project generation.
They  should not be needed anyway, as qemu_x86 defaults to 8 MB of RAM.
Additionaly, echo_client crashes in this configuration with default main
stack size, hence increase it.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2018-07-11 15:44:46 +03:00
..
src samples: net: Fix echo_server reply packet preparation 2018-05-16 16:40:27 +03:00
CMakeLists.txt cmake: Ported mbedTLS to use Zephyr interface libraries 2018-01-02 22:09:01 -05:00
README.rst sample: net: echo-server: Cleanup config files 2018-03-28 09:41:05 +03:00
prj.conf sample: net: echo-server: Cleanup config files 2018-03-28 09:41:05 +03:00
prj_arduino_101.conf
prj_bt.conf net: samples: Remove CONFIG_NET_L2_BT_ZEP1656 2017-11-16 10:41:07 +02:00
prj_cc2520.conf samples: echo_server: Update prj_cc2520 configuration 2018-04-25 07:17:42 +05:30
prj_frdm_k64f_cc2520.conf net: ieee802154: Remove old cc2520 AUTO_ACK assignments 2018-05-25 11:20:37 -04:00
prj_frdm_k64f_mcr20a.conf samples/net: Reducing prj*.conf files by relevantly removing 6Lo option 2017-10-28 14:28:02 -04:00
prj_frdm_kw41z.conf debug: fix RTT console Kconfig 2018-03-19 15:37:26 -04:00
prj_frdm_kw41z_ot.conf samples/echo_server: Increased stack sizes for testing OT on kw41z 2018-05-11 16:39:47 +03:00
prj_netusb.conf samples: echo_server: Remove conflicting option from conf file 2018-05-26 08:27:16 -04:00
prj_nrf5.conf samples/net: Reducing prj*.conf files by relevantly removing 6Lo option 2017-10-28 14:28:02 -04:00
prj_nrf52840_ot.conf drivers: flash: nrf: Rename nrf5 to nrf 2018-03-20 20:07:09 +01:00
prj_qemu_802154.conf samples/net: Reducing prj*.conf files by relevantly removing 6Lo option 2017-10-28 14:28:02 -04:00
prj_qemu_x86_tls.conf samples: net: Fix echo_client/echo_server TLS config files 2018-07-11 15:44:46 +03:00
sample.yaml openthread: kw41z: Adding echo/server project config files for KW41Z OT 2018-04-11 16:57:12 +03:00

README.rst

.. _echo-server-sample:

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:
:file:`samples/net/echo_server`.

Requirements
************

- :ref:`networking_with_qemu`

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 :ref:`networking_with_qemu`.

There are configuration files for different boards and setups in the
echo-server directory:

- :file:`prj.conf`
  Generic config file, normally you should use this.

- :file:`prj_arduino_101.conf`
  Use this for Arduino 101 with external enc28j60 ethernet board.

- :file:`prj_bt.conf`
  Use this for Bluetooth IPSP connectivity.

- :file:`prj_cc2520.conf`
  Use this for devices that have support for IEEE 802.15.4 cc2520 chip.

- :file:`prj_frdm_k64f_cc2520.conf`
  Use this for FRDM-K64F board with external IEEE 802.15.4 cc2520 board.

- :file:`prj_frdm_k64f_mcr20a.conf`
  Use this for FRDM-K64F board with IEEE 802.15.4 mcr20a board.

- :file:`prj_qemu_802154.conf`
  Use this when simulating IEEE 802.15.4 network using two QEMU's that
  are connected together.

- :file:`prj_netusb.conf`
  Use this for Ethernet over USB setup with supported boards. The setup is
  described in :ref:`usb_device_networking_setup`.

Build echo-server sample application like this:

.. zephyr-app-commands::
   :zephyr-app: samples/net/echo_server
   :board: <board to use>
   :conf: <config file to use>
   :goals: build
   :compact:

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 :ref:`networking_with_qemu` guide.

Run echo-server application in QEMU:

.. zephyr-app-commands::
   :zephyr-app: samples/net/echo_server
   :host-os: unix
   :board: qemu_x86
   :goals: run
   :compact:

In a terminal window:

.. code-block:: console

    $ 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.