#c #linux #sockets #ssl
#c #linux #сокеты #ssl
Вопрос:
все: Только что у меня возникла проблема с моим кодом.
Я получил ошибку «Ошибка записи SSL: 5, ошибка 145, время ожидания соединения истекло»,
и эта ошибка появляется не часто. Мы тестируем код около месяца, и эта ошибка появляется только один раз. Я ищу ошибку в Google, и я не получил ничего полезного. Кто-нибудь, кто сталкивался с этой ошибкой?
// Below are my codes
int err, r;
int width = sockfd 1;
struct timeval tv_timeout = {1,0};
fd_set writefds;
FD_ZERO(amp;writefds);
FD_SET(sockfd, amp;writefds);
r = select(width, NULL, amp;writefds, 0, amp;tv_timeout);
if (r < 0)
{
printf("sslWriteData:r < 0n");
return FAIL;
}
if (FD_ISSET(sockfd, amp;writefds))
{
FD_CLR(sockfd, amp;writefds);
r = SSL_write(pssl, (void*)(pszDataBuf iBufLen - iLeftLen), iLeftLen)
err = SSL_get_error(pssl, r);
if (SSL_ERROR_NONE == err)
{
//...;
}
else
{
printf("sslWriteData:SSL write err:%d, "
"errno %d, %sn",
err, errno, strerror(errno));
return FAIL;
}
}
Комментарии:
1. Похоже, возникла временная проблема с сетью; однако трудно сказать наверняка, если вы не можете ее воспроизвести.
2. Я думал, что это временная проблема с сетью, но время ожидания составило 16 минут, а не 1 секунду, как я установил с помощью select . Это было проверено.