Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

connect function


Страницы:   1 2

clim ©   (2003-07-23 00:20:00) 

у меня такой вопрос:
значит когда я устонавливаю соединение с каким-либо хостом на определенный порт,
то если таковой порт закрыт - очень долго генерирутся ошибка, что порт закрыт,
я написал такой код
...
A.sin_family:=AF_INET;
A.sin_addr.S_addr:=inet_addr(pchar(ip));
A.sin_port:=htons(port_number);
S:=socket(AF_INET,SOCK_STREAM,0);
port := false;
starttime:=GetCurrentTime();
while (GetCurrentTime() - starttime < wait_for_response) do
begin
if connect(S,A,sizeof(A))=0 then
port := true;
end;
if port=true then
Memo1.Lines.add(inttostr(port_number)+" -> open")
else
( inttostr(port_number)

у меня такой вопрос:
значит когда я устонавливаю соединение с каким-либо хостом на определенный порт,
то если таковой порт закрыт - очень долго генерирутся ошибка, что порт закрыт,
я написал такой код
...
A.sin_family:=AF_INET;
A.sin_addr.S_addr:=inet_addr(pchar(ip));
A.sin_port:=htons(port_number);
S:=socket(AF_INET,SOCK_STREAM,0);
port := false;
starttime:=GetCurrentTime();
while (GetCurrentTime() - starttime < wait_for_response) do
begin
if connect(S,A,sizeof(A))=0 then
port := true;
end;
if port=true then
Memo1.Lines.add(inttostr(port_number)+" -> open")
else
Memo1.Lines.add(inttostr(port_number)+" -> close");
...
но ошибка все равно долго обрабатывается

Что делать???


Е-моё имя   (2003-07-23 15:45:00) [21]

clim (23.07.03 15:43)

почитай про установление TCP соединения и сразу все поймешь


clim   (2003-07-23 15:43:00) [22]

хотя нет -- я ошибся, чтобы определить состояние одного порта этому кусочку кода треюуется 50 секунд.
к стати очень хорошо заметно, что интенсивность хождения пакетов во
время этого кода очень низкая.
если сравнивать со скоростью, с которой сканируют порты, такие программки как nmap, portscanner, то скорость очень низкая =(

от сервака ничего не завист!!!


Digitman   (2003-07-23 15:16:00) [23]


> clim


что значит "нужно" ? мало ли чего тебе нужно ! сервер может быть на другом конце света, сервер может быть нагружен до предела - мало ли причин, по которым реакция на твой запрос не мгновенна ?
обратись к серверу на твоей же (локальной) машине - будет тебе реакция в доли секунды !


clim   (2003-07-23 14:59:00) [24]

примерно 5-7 секунд
нужно чтобы около 1, максимум 2


Digitman   (2003-07-23 08:35:00) [25]


> долго обрабатывается


"долго" это сколько ? и сколько, по твоему, д.б. "недолго" ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо