私は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 は正常に動作するように見えますが、短い間隔値で失敗する理由を知りたいです。