Echo server (QUIC)
Overview
The quic/echo_service sample application for Zephyr implements a QUIC protocol echo server supporting both IPv4 and IPv6 and using a BSD Sockets compatible API.
The purpose of this sample is to show how to use QUIC and service APIs. The socket service is a concept where many blocking sockets can be listened by one thread, and which can then trigger a callback if there is activity in the set of sockets. This saves memory as only one thread needs to be created in the system.
The application supports IPv4 and IPv6, and uses QUIC protocol (RFC 9000) to implement the service. The source code for this sample application can be found at: samples/net/quic/echo_service.
Requirements
or, a board with hardware networking
Building and Running
Build the Zephyr version of the quic/echo_service application like this:
west build -b <board_to_use> samples/net/quic/echo_service
After the sample starts, it expects connections at 192.0.2.1, or 2001:db8::1 and port 4422. The easiest way to connect is using helper echo-client script in net-tools project:
$ ./quic-echo-client.py --host 192.0.2.1 --max-size 1280 --packets 1
$ ./quic-echo-client.py --host 2001:db8::1 --packets 10
After a connection is made, the application will echo back any line sent to it. The quic-echo-client.py application will print statistics at the end.