A UDP Echo Client Example
Not all demo projects will include this example. If this example is
included in a demo project then it may be necessary to set
mainCREATE_UDP_ECHO_TASKS to 1 at the top of
the project’s main.c source file to include the example in the
FreeRTOS+TCP and FreeRTOS+FAT Examples
The example creates two RTOS tasks that send UDP echo requests to an external echo server using the standard echo port (port 7). One RTOS task uses the standard socket interface, the other RTOS task uses the zero copy socket interface.
The IP address of the echo server must be configured using the configECHO_SERVER_ADDR0 to configECHO_SERVER_ADDR3 constants in FreeRTOSConfig.h, and the echo server must (stating the obvious) be enabled and not blocked by a firewall. Windows ships with an echo server but it is not enabled by default. Third party echo servers are also available.
These RTOS tasks are self checking and will trigger a configASSERT() failure if they detect a difference in the data that is received from that which was sent. As these RTOS tasks use UDP, which can legitimately loose packets, they can cause configASSERT() failures when they are executed in a less than perfect networking environment.