

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 安全套接字 Echo 客户端演示
<a name="secure-sockets-demo"></a>

**重要**  <a name="deprecation-message-demo"></a>
该演示托管在已弃用的 Amazon-FreeRTOS 存储库中。当您创建新项目时，我们建议[从此处开始](freertos-getting-started-modular.md)。如果您已经有一个基于现已弃用的 Amazon-FreeRTOS 存储库的 FreeRTOS 项目，请参阅 [Amazon-FreeRTOS Github 存储库迁移指南](github-repo-migration.md)。

以下示例使用单个 RTOS 堆栈。可以在 `demos/tcp/aws_tcp_echo_client_single_task.c` 中找到本示例的源代码。

在开始之前，请确认您已将 FreeRTOS 下载到微控制器，并且已构建和运行 FreeRTOS 演示项目。您可以从 [GitHub](https://github.com/aws/amazon-freertos) 克隆或下载 FreeRTOS。有关说明，请参阅 [README.md](https://github.com/aws/amazon-freertos/blob/main/README.md) 文件。

**运行演示**

**注意**  
要设置和运行 FreeRTOS 演示，请按照[开始使用 FreeRTOS](freertos-getting-started.md)中的步骤操作。  
Cypress CYW943907AEVAL1F 和 CYW954907AEVAL1F 开发工具包当前不支持 TCP 服务器和客户端演示。

1. 按照《FreeRTOS 移植指南》中[设置 TLS Echo 服务器](https://docs.aws.amazon.com/freertos/latest/portingguide/tls-echo-server.html)的说明进行操作。

   TLS Echo 服务器应已运行并在端口 9000 上侦听。

   在设置期间，您应已生成四个文件：
   + `client.pem`（客户端证书）
   + `client.key`（客户端私有密钥）
   + `server.pem`（服务器证书）
   + `server.key`（服务器私有密钥）

1. 使用工具 `tools/certificate_configuration/CertificateConfigurator.html` 将客户端证书 (`client.pem`) 和客户端私有密钥 (`client.key`) 复制到 `aws_clientcredential_keys.h`。

1. 打开 `FreeRTOSConfig.h`文件。

1. 将 `configECHO_SERVER_ADDR0`、`configECHO_SERVER_ADDR1`、`configECHO_SERVER_ADDR2` 和 `configECHO_SERVER_ADDR3` 变量设置为 4 个整数，它们构成了 TLS Echo 服务器在其中运行的 IP 地址。

1. 将 `configTCP_ECHO_CLIENT_PORT` 变量设置为 `9000`（TLS Echo 服务器所侦听的端口）。

1. 将 `configTCP_ECHO_TASKS_SINGLE_TASK_TLS_ENABLED` 变量设置为 `1`。

1. 使用工具 `tools/certificate_configuration/PEMfileToCString.html` 将服务器证书 (`server.pem`) 复制到 `cTlsECHO_SERVER_CERTIFICATE_PEM` 文件中的 `aws_tcp_echo_client_single_task.c`。

1. 打开 `freertos/vendors/vendor/boards/board/aws_demos/config_files/aws_demo_config.h`，注释掉 `#define CONFIG_CORE_MQTT_MUTUAL_AUTH_DEMO_ENABLED` 并定义 `CONFIG_OTA_MQTT_UPDATE_DEMO_ENABLED` 或 `CONFIG_OTA_HTTP_UPDATE_DEMO_ENABLED`。

微控制器和 TLS Echo 服务器应位于同一网络中。在演示开始时 (`main.c`)，您应看到一条日志消息，其内容为 `Received correct string from echo server`。