zephyr/samples/net/echo_server
Tomasz Bursztyka d4eeaff93c samples/net: Removing config support for arduino_101 with CC2520
It's useless now, arduino_101 has proven not working very well with x86
gpios and CC2520 never got to work properly there.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2017-10-05 07:17:50 -04:00
..
src net: app: Add IP header to packets received by TLS/DTLS tunnel 2017-08-30 08:12:10 -04:00
Makefile Bluetooth: Kconfig: Rename CONFIG_BLUETOOTH_* to CONFIG_BT_* 2017-08-09 11:14:19 +03:00
README.rst samples/net: Removing config support for arduino_101 with CC2520 2017-10-05 07:17:50 -04:00
prj_arduino_101.conf net: fix wrong Kconfig 2017-07-05 12:43:13 -04:00
prj_bt.conf Bluetooth: Kconfig: Rename CONFIG_BLUETOOTH_* to CONFIG_BT_* 2017-08-09 11:14:19 +03:00
prj_cc2520.conf net: samples: Convert echo-server to use network app API 2017-06-30 06:13:09 -04:00
prj_frdm_k64f.conf net: samples: Convert echo-server to use network app API 2017-06-30 06:13:09 -04:00
prj_frdm_k64f_cc2520.conf net: samples: Convert echo-server to use network app API 2017-06-30 06:13:09 -04:00
prj_frdm_k64f_mcr20a.conf net: samples: Convert echo-server to use network app API 2017-06-30 06:13:09 -04:00
prj_nrf5.conf Bluetooth: Kconfig: Rename CONFIG_BLUETOOTH_* to CONFIG_BT_* 2017-08-09 11:14:19 +03:00
prj_qemu_802154.conf net: samples: Convert echo-server to use network app API 2017-06-30 06:13:09 -04:00
prj_qemu_cortex_m3.conf net: enable SLIP only on QEMU targets 2017-07-26 10:57:48 -04:00
prj_qemu_x86.conf net: enable SLIP only on QEMU targets 2017-07-26 10:57:48 -04:00
prj_qemu_x86_tls.conf net: enable SLIP only on QEMU targets 2017-07-26 10:57:48 -04:00
prj_sam_e70_xplained.conf net: samples: Convert echo-server to use network app API 2017-06-30 06:13:09 -04:00
sample.yaml tests: samples: convert testcase files to yaml 2017-06-21 20:56:53 -04: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_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.conf`
  Use this for FRDM-K64F board with built-in ethernet.

- :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_qemu_cortex_m3.conf`
  Use this for ARM QEMU.

- :file:`prj_qemu_x86.conf`
  Use this for x86 QEMU.

- :file:`prj_sam_e70_xplained.conf`
  Use this for Atmel SMART SAM E70 Xplained board with ethernet.

Build echo-server sample application like this:

.. code-block:: console

    $ cd $ZEPHYR_BASE/samples/net/echo_server
    $ make pristine && make CONF_FILE=<your desired conf file> \
      BOARD=<board to use>

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:

.. code-block:: console

    $ cd $ZEPHYR_BASE/samples/net/echo_server
    $ make pristine && make run

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.