

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Secure Sockets 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)。 FreeRTOS 

下列範例使用單一 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 CYW954907AEVAL1F 和 CYW943907AEVAL1F 開發套件上不支援 TCP 伺服器和用戶端示範。

1. 請遵循 FreeRTOS 移植指南中[設定 TLS Echo Server](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` 變數設定為四個整數，組成 TLS Echo Server 執行所在的 IP 地址。

1. 將 `configTCP_ECHO_CLIENT_PORT` 變數設定為 `9000`，即 TLS Echo Server 接聽所在的連接埠。

1. 將 `configTCP_ECHO_TASKS_SINGLE_TASK_TLS_ENABLED` 變數設定為 `1`。

1. 使用工具 `tools/certificate_configuration/PEMfileToCString.html` 將伺服器憑證 (`server.pem`) 複製到檔案 `aws_tcp_echo_client_single_task.c` 中的 `cTlsECHO_SERVER_CERTIFICATE_PEM`。

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 Server 應該在相同網路上。示範開始時 (`main.c`)，您應該會看到日誌訊息，指出 `Received correct string from echo server`。