Amazon FreeRTOS
User Guide

Secure Sockets Echo Client Demo

The following example uses a single RTOS task. The source code for this example can be found at demos/tcp/aws_tcp_echo_client_single_task.c.

Before you begin, verify that you have downloaded Amazon FreeRTOS to your microcontroller and built and run the Amazon FreeRTOS demo projects. You can clone or download Amazon FreeRTOS from GitHub. See the README.md file for instructions. For more information about setting up an Amazon FreeRTOS-qualified board, see Getting Started with Amazon FreeRTOS.

To run the demo

Note

The TCP server and client demos are currently not supported on the Cypress CYW943907AEVAL1F and CYW954907AEVAL1F Development Kits.

  1. Follow the instructions in Setting Up the TLS Echo Server in the Amazon FreeRTOS Porting Guide.

    A TLS echo server should be running and listening on the port 9000.

    During the setup, you should have generated four files:

    • client.pem (client certificate)

    • client.key (client private key)

    • server.pem (server certificate)

    • server.key (server private key)

  2. Use the tool tools/certificate_configuration/CertificateConfigurator.html to copy the client certificate (client.pem) and client private key (client.key) to aws_clientcredential_keys.h.

  3. Open the FreeRTOSConfig.h file.

  4. Set the configECHO_SERVER_ADDR0, configECHO_SERVER_ADDR1, configECHO_SERVER_ADDR2, and configECHO_SERVER_ADDR3 variables to the four integers that make up the IP address where the TLS Echo Server is running.

  5. Set the configTCP_ECHO_CLIENT_PORT variable to 9000, the port where the TLS Echo Server is listening.

  6. Set the configTCP_ECHO_TASKS_SINGLE_TASK_TLS_ENABLED variable to 1.

  7. Use the tool tools/certificate_configuration/PEMfileToCString.html to copy the server certificate (server.pem) to cTlsECHO_SERVER_CERTIFICATE_PEM in the file aws_tcp_echo_client_single_task.c.

  8. Open <amazon-freertos>/vendors/<vendor>/boards/<board>/aws_demos/config_files/aws_demo_config.h, comment out #define CONFIG_MQTT_DEMO_ENABLED, and define CONFIG_TCP_ECHO_CLIENT_DEMO_ENABLED.

The microcontroller and the TLS Echo Server should be on the same network. When the demo starts (main.c), you should see a log message that reads Received correct string from echo server.