Цитата:
Ха, гениально. Вот тока это не поможет. Сам то работал с WinSock ?
|
Не надо пытаться наезжать, если чего-то не понимаешь.
Мои исхи давно канули в лету, поэтому привожу пример из книги Фленова (вечный сервер, вырубается по ошибке):
Код:
tv.tv_sec := 1; // Тайм-аут - секунды
tv.tv_usec := 0;
while true do
begin
FD_ZERO(ReadSet);
FD_SET(sServer, ReadSet);
ReadySock := select(0, @ReadSet, 0, 0, @tv);
if (ReadySock = SOCKET_ERROR) then
exit;
if (FD_ISSET(sServer, ReadSet)) then
begin
sClient := accept(sServer, ...);
if sClient = INVALID_SOCKET then
exit;
// клиент подключен
end;
end;
Если убрать цикл - будет вырубаться по тайм-ауту.
Разумеется, сокет должен быть неблокирующий.