Здравствуйте.
Скажите, как правильно обрабатывать ошибку recvfrom?
То есть, вот кусок udp-сервера, который в цикле принимает соединения...
while(1)
{
int n;
if((n = recvfrom(sd, read_buffer, BREADSIZE - 1, 0, NULL, NULL)) < 0)
{
close(sd);
exit(0);
}
...если возникла ошибка, то нужно закрывать сокет и гасить прогу или можно сделать так...
while(1)
{
int n;
if((n = recvfrom(sd, read_buffer, BREADSIZE - 1, 0, NULL, NULL)) < 0)
{
printf("error socket\n");
continue;
}
Сильно не пинайте ибо не понятно, какие последствия грядут?
То есть ясно, что ошибка EBADF (неверный дескриптор) погубит меня, но вот например ECONNREFUSED (сетевой компьютер с другой стороны отказался устанавливать сетевое соединение (обычно потому, что там не работает запрошенный сервис)), к чему приведёт?
Спасибо.
(язык си, линукс).