Здравствуйте Flamer, Вы писали:
F> fd_set FdSet;
fd_set set = { 1, { s }};
и выкинуть FD_ZERO(&FdSet);
FD_SET(s, &FdSet);
не очень чтобы переносимо и правильно, зато короче и коду меньше генерится
Аналогично, проверка, что recv не будет блокирующим.
bool canread(SOCKET s)
{
timeval tv = { 0, 0 };
fd_set set = { 1, { s }};
return (select(0,&set,NULL,NULL,&tv) != 0);
}