【发布时间】:2013-04-12 13:12:40
【问题描述】:
我在 VS2010 中调试。 BIO_do_connect() 在以下代码中失败。我做错了什么?
(pBio在使用前已正确设置)
static const uint32_t kuSleepIntervalInMs = 50;
...
uint32_t uTimeTaken = 0;
...
BIO_set_nbio(pBio, 1);
for (;;)
{
if (uTimeTaken > 10000)
return ERR_CONNECTION_TIMED_OUT;
if (BIO_do_connect(pBio) > 0)
break;
if (BIO_should_retry(pBio))
{
Sleep(kuSleepIntervalInMs);
uTimeTaken += kuSleepIntervalInMs;
continue;
}
BIO_free_all(pBio);
return ERR_FAILED_TO_ESTABLISH_CONNECTION;
}
看来,如果我增加睡眠间隔(例如增加到 500),BIO_do_connect 工作正常,但我想知道为什么它会因更短的间隔值而失败。
【问题讨论】:
标签: c networking openssl connection