使用arduino-esp32框架在套接字上设置超时

时间:2018-11-05 10:31:50

标签: arduino-esp8266

我正在尝试在arduino-esp32框架上的安全wifi连接上设置连接超时。我的代码是:

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;
  }

这将成功打开wifi连接,但会记录此错误:

  

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

0x1006定义为

  

SO_RCVTIMEO 0x1006 / *接收超时* /

错误9定义为

  

EBADF 9 / *错误的文件号* /

我被困在这里。此处的文件编号错误意味着什么,为什么不能以这种方式设置套接字流超时?谁能帮我吗?

1 个答案:

答案 0 :(得分:0)

在client.connect之前不能有setTimeOut。您必须先建立连接。