mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-07 17:01:57 +00:00
…
|
||
---|---|---|
.. | ||
src | ||
CMakeLists.txt | ||
Kconfig | ||
overlay-802154.conf | ||
overlay-bt.conf | ||
overlay-ot.conf | ||
overlay-tls.conf | ||
overlay-vlan.conf | ||
prj.conf | ||
README.rst | ||
sample.yaml |
.. _sockets-echo-client-sample: Socket Echo Client ################## Overview ******** The echo-client sample application for Zephyr implements a UDP/TCP client that will send IPv4 or IPv6 packets, wait for the data to be sent back, and then verify it matches the data that was sent. This sample is a port of the :ref:`echo-client-sample`. It has been rewritten to use socket API instead of native net-app API. The source code for this sample application can be found at: :file:`samples/net/sockets/echo_client`. 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-client application inside QEMU. This is described in :ref:`networking_with_qemu`. Build echo-client sample application like this: .. zephyr-app-commands:: :zephyr-app: samples/net/sockets/echo_client :board: <board_to_use> :goals: build :compact: ``board_to_use`` defaults to ``qemu_x86``. In this case, you can run the application in QEMU using ``make run``. If you used another BOARD, you will need to consult its documentation for application deployment instructions. You can read about Zephyr support for specific boards in the documentation at :ref:`boards`. Enabling TLS support ================================= Enable TLS support in the sample by building the project with the ``overlay-tls.conf`` overlay file enabled, for example, using these commands: .. zephyr-app-commands:: :zephyr-app: samples/net/sockets/echo_client :board: qemu_x86 :conf: "prj.conf overlay-tls.conf" :goals: build :compact: An alternative way is to specify ``-DOVERLAY_CONFIG=overlay-tls.conf`` when running cmake. The certificate and private key used by the sample can be found in the sample's ``src`` directory. The default certificates used by Socket Echo Client and :ref:`sockets-echo-server-sample` enable establishing a secure connection between the samples. Running echo-server in Linux Host ================================= There is one useful testing scenario that can be used with Linux host. Here echo-client is run in QEMU and echo-server is run in Linux host. To use QEMU for testing, follow the :ref:`networking_with_qemu` guide. In a terminal window: .. code-block:: console $ sudo ./echo-server -i tap0 Run echo-client application in QEMU: .. zephyr-app-commands:: :zephyr-app: samples/net/sockets/echo_client :host-os: unix :board: qemu_x86 :goals: run :compact: Note that echo-server must be running in the Linux host terminal window before you start the echo-client application in QEMU. You can verify TLS communication with a Linux host as well. See https://github.com/zephyrproject-rtos/net-tools documentation for information on how to test TLS with Linux host samples. See the :ref:`sockets-echo-server-sample` documentation for an alternate way of running, with the echo-client on the Linux host and the echo-server in QEMU.