ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

19.05.2010, 22:08
|
|
Участник форума
Регистрация: 12.11.2008
Сообщений: 146
Провел на форуме: 592199
Репутация:
21
|
|
Winsock TimeOut
block:=1;
sock:=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if sock=LongWord(-1) then exit;
SockAddrIn.sin_family := AF_INET;
SockAddrIn.sin_port := htons(strtoint(PROXY_PORT));
SockAddrIn.sin_addr.s_addr := inet_addr(Pansichar(PROXY_IP));
ioctlsocket(sock, FIONBIO, block); // переводим сокет в неблокируемый режим
if connect(sock, SockAddrIn, SizeOf(SockAddrIn))=SOCKET_ERROR then // пытаемся подключиться
begin
if WSAGetLastError=WSAEWOULDBLOCK then // проверяем что сокет перешел в неблокируемый режим
begin
FD_ZERO(fds);
FD_SET(sock,fds);
timeout.tv_sec:=strtoint(form1.Edit1.Text); // наш таймаут
timeout.tv_usec:=0;
rc:=select(0, nil, @fds, nil, @timeout); // ожидаем
end;
end;
block:=0;
ioctlsocket(sock, FIONBIO, block); // переводим сокет обратно в блокируемый режим
if rc=0 then
begin
// сработал таймаут
synchronize(showresultbad);
end
else
begin
брал от сюда https://forum.antichat.ru/thread178458.html
Нашел на форуме пример таймаута для сокетов.
Но что то глючно работает. Не срабатывает на тормазнутых соксах.
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|