Здравствуйте, Ruweb, Вы писали:
R>я пишу cgi приложение, а WSARecv по моему используется в win aplication
R>R>while( sk_recv = recv(sk[0], buff+help, 60000-help, 0) )
R>{
R> if( sk_recv == -1 || sk_recv == WSAEWOULDBLOCK ) {
R> Sleep(5);
R> continue;
R> }
R> help += sk_recv;
R>}
R>
R>так нармально делать?
R>если соединие оборвалось, то recv вернёт 0?
нет, так не нормально
int res = recv(...);
if(res == 0)
// сокет закрыли
else if(res == SOCKET_ERROR)
{
int err = WSAGetLastError();
// и вот тут уже проверяем на WSAEWOULDBLOCK и т.п.
// хотя получинение WSAEWOULDBLOCK зависит от типа сокета
}
else
// ура, мы получили что то из сокета