samples: net: sockets: Add READMEs for echo/echo_async samples
Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
This commit is contained in:
parent
9d96f84072
commit
e314de5d53
2 changed files with 161 additions and 0 deletions
78
samples/net/sockets/echo/README.rst
Normal file
78
samples/net/sockets/echo/README.rst
Normal file
|
@ -0,0 +1,78 @@
|
|||
.. _sockets-echo-sample:
|
||||
|
||||
Socket Echo Server
|
||||
##################
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
The sockets/echo sample application for Zephyr implements an IPv4 TCP echo
|
||||
server using a BSD Sockets like API. The purpose of this sample is to show
|
||||
how it's possible to develop a sockets application portable to both POSIX
|
||||
and Zephyr. As such, it is kept minimal and supports only IPv4 and TCP.
|
||||
|
||||
The source code for this sample application can be found at:
|
||||
:file:`samples/net/sockets/echo`.
|
||||
|
||||
Requirements
|
||||
************
|
||||
|
||||
- :ref:`networking_with_qemu`
|
||||
- or, a board with hardware networking
|
||||
|
||||
Building and Running
|
||||
********************
|
||||
|
||||
Build the Zephyr version of the sockets/echo application like this:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cd $ZEPHYR_BASE/samples/net/sockets/echo
|
||||
$ make pristine
|
||||
$ make BOARD=<board_to_use>
|
||||
|
||||
``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`.
|
||||
|
||||
After the sample starts, it expects connections at 192.0.2.1, port 4242.
|
||||
The easiest way to connect is:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ telnet 192.0.2.1 4242
|
||||
|
||||
After a connection is made, the application will echo back any line sent
|
||||
to it. The application implements a single-threaded server using blocking
|
||||
sockets, and thus can serve only one client connection at time. After the
|
||||
current client disconnects, the next connection can proceed.
|
||||
|
||||
Running application on POSIX Host
|
||||
=================================
|
||||
|
||||
The same application source code can be built for a POSIX system, e.g.
|
||||
Linux. (Note: if you look at the source, you will see that code is the
|
||||
same except the header files are different for Zephyr vs POSIX.)
|
||||
|
||||
To build for a host POSIX OS:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ make -f Makefile.posix
|
||||
|
||||
To run:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ ./socket_echo
|
||||
|
||||
To test:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ telnet 127.0.0.1 4242
|
||||
|
||||
As can be seen, the behavior of the application is the same as the Zephyr
|
||||
version.
|
83
samples/net/sockets/echo_async/README.rst
Normal file
83
samples/net/sockets/echo_async/README.rst
Normal file
|
@ -0,0 +1,83 @@
|
|||
.. _async-sockets-echo-sample:
|
||||
|
||||
Asynchronous Socket Echo Server
|
||||
###############################
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
The sockets/echo-async sample application for Zephyr implements an
|
||||
asyncronous IPv4 TCP echo server using a BSD Sockets like API with
|
||||
non-blocking sockets and a ``poll()`` call. This is an extension of
|
||||
the :ref:`sockets-echo-sample` sample. The purpose of this sample is
|
||||
still to show how it's possible to develop a sockets application portable
|
||||
to both POSIX and Zephyr. As such, it is kept minimal and supports only
|
||||
IPv4 and TCP.
|
||||
|
||||
The source code for this sample application can be found at:
|
||||
:file:`samples/net/sockets/echo_async`.
|
||||
|
||||
Requirements
|
||||
************
|
||||
|
||||
- :ref:`networking_with_qemu`
|
||||
- or, a board with hardware networking
|
||||
|
||||
Building and Running
|
||||
********************
|
||||
|
||||
Build the Zephyr version of the sockets/echo_async application like this:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cd $ZEPHYR_BASE/samples/net/sockets/echo_async
|
||||
$ make pristine
|
||||
$ make BOARD=<board_to_use>
|
||||
|
||||
``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`.
|
||||
|
||||
After the sample starts, it expects connections at 192.0.2.1, port 4242.
|
||||
The easiest way to connect is:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ telnet 192.0.2.1 4242
|
||||
|
||||
After a connection is made, the application will echo back any line sent to
|
||||
it. Unlike the above-mentioned :ref:`sockets-echo-sample`, this application
|
||||
supports multiple concurrent client connections. You can open
|
||||
another terminal window and run the same telnet command as above.
|
||||
The sample supports up to three connected clients, but this can be adjusted
|
||||
by changing ``NUM_FDS`` defined in the source code.
|
||||
|
||||
Running application on POSIX Host
|
||||
=================================
|
||||
|
||||
The same application source code can be built for a POSIX system, e.g.
|
||||
Linux. (Note: if you look at the source, you will see that code is
|
||||
the same except the header files are different for Zephyr vs POSIX.)
|
||||
|
||||
To build for a host POSIX OS:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ make -f Makefile.posix
|
||||
|
||||
To run:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ ./socket_echo
|
||||
|
||||
To test:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ telnet 127.0.0.1 4242
|
||||
|
||||
As can be seen, the behavior of the application is the same as the Zephyr
|
||||
version.
|
Loading…
Add table
Add a link
Reference in a new issue