Установка таймаута в сокете с использованием фреймворка arduino-esp32 - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь установить тайм-аут соединения для безопасного соединения Wi-Fi на платформе arduino-esp32. Мой код:

const uint32_t RESPONSE_TIMEOUT = 30;

WiFiClientSecure client;

client.setTimeout(RESPONSE_TIMEOUT);

if (!client.connect(currentHost.c_str(), port)) {
    ESP_LOGI(TAG, "Cannot connect to %s", currentHost.c_str());
    display(3, " E", "connection lost");
    goto failure;
  }

Это открывает успешное соединение Wi-Fi, но регистрирует эту ошибку:

[E] [WiFiClient.cpp: 236] setSocketOption (): 1006: 9

0x1006 определяется как

SO_RCVTIMEO 0x1006 / * тайм-аут приема * /

и ошибка 9 определяется как

EBADF 9 / * Неверный номер файла * /

Я застрял здесь. Что означает плохой номер файла и почему невозможно установить тайм-аут потока сокета таким образом? Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 16 января 2019

Вы не можете использовать setTimeOut до client.connect. Сначала вы должны установить соединение.

...