Форум: "Сети";
Текущий архив: 2011.04.10;
Скачать: [xml.tar.bz2];
ВнизКак задать таймаут при определении имени хоста? Найти похожие ветки
← →
vann (2009-02-02 07:54) [0]я использую след. код для определения имени хоста по адресу:
function GetHostname(const ip: string): string;
var
Host: PHostEnt;
Destino: in_addr;
begin
result:="unknown";
try
Destino.S_addr := inet_addr(PAnsiChar(ip));
if Destino.S_addr <> 0 then
Host := GetHostbyAddr(@Destino, sizeof(in_addr), AF_INET)
else exit;
result:=host.h_name;
except
end;
Есно, перед вызовом произвожу инициализацию:
function InitSockets(): boolean;
begin
WSAStatus := WSAStartup($0101, wsadt);
result:=WSAStatus=0;
if not result WSACleanup();
end;
Но вот проблема: если имя хоста не удаётся определить, эта функция выполняется очень долго, а мне нужно производить тысячи определений. Существует ли способ установить таймаут? Например, одна секунда, а потом всё, считаем хостнейм не определенным.
← →
brother © (2009-02-02 07:57) [1]> а мне нужно производить тысячи определений.
интересно, можно подробнее?
может в потоках определять?
← →
vann (2009-02-02 08:05) [2]У меня тысячи адресов, для которых нужно определить хостнейм. В последний раз 37 адресов определялось 40 минут. Жесть.
А в потоках какой смысл? Не убивать же его потом ручками.
← →
brother © (2009-02-02 08:15) [3]> У меня тысячи адресов, для которых нужно определить хостнейм.
ну и нафига это нужно? все за раз нужно знать?
> А в потоках какой смысл? Не убивать же его потом ручками.
посмотрел что в потоке в данный момент делается, пусть он дальше отрабатывает, и очереди не будет, самые быстрые хосты уже ответили, остальные нет? ну и фиг) пусть операция завершается, но нам уже пофиг)
← →
Сергей М. © (2009-02-02 08:16) [4]
> Существует ли способ установить таймаут?
Организуй таймаут самомтоятельно. с применением WSAAsyncGetHostByAddr
← →
vann (2009-02-06 09:19) [5]Сергей М., спасибо, помогло!
← →
имя (2009-03-08 11:14) [6]Удалено модератором
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2011.04.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c