Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Вниз

Сканирование портов   Найти похожие ветки 

 
Rezya   (2004-03-09 20:42) [0]

Люди добрые подскажите PLZZZZ....
Написал сканер портов на основе winsock. Он работает но крайне медленно в отличии тех сканеров что я скачал с I-Net. Чем это обусловлено и как ускорить скорость работы.
Приведу код чтобы было понятно

procedure WWW.Execute;
Var
Data:WsaData;
Sock:TSocket;
Addr:sockaddr_in;
begin
if (WSAStartup($202,Data) <> 0)then  Synchronize(WSAStartup1);

Sock:=Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

if (Sock=INVALID_SOCKET) then   Synchronize(INVALID_SOCKET1);

Addr.sin_family:=AF_INET;
Addr.sin_addr.S_addr:=inet_Addr(PChar(IpAdress));

For K:=StartPort to EndPort do
begin
Addr.sin_port:=htons(k);
Synchronize(Count);
if Connect(Sock,Addr,Sizeof(Addr))<>0 then
begin
//Synchronize(Error);
end
else
begin
Synchronize(Good);
end;
end;
end;



Делал Отдельным процессом дабы не загружать прогу.
Если кто чем поможет заранее Благодарен.


 
Verg ©   (2004-03-09 20:58) [1]

Дело в том, что ты не используешь не только возможностей многопоточности, но и мощности самого WinSock. Ты применяешь последовательную схему, т.е. пока попытка соединения с одним портом не закончится, к следующему ты не приступаешь.
Хотя можно было бы использовать неблокирующие сокеты с мультиплексированием, например.

Вот почитай пока.

http://delphimaster.net/view/6-1078117651/



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.038 c
1-1081834667
MikePol
2004-04-13 09:37
2004.05.02
Проблема с потоками


14-1081772853
Инкогнито
2004-04-12 16:27
2004.05.02
А вы верите в чудеса? :)


3-1081353520
Gennadiy
2004-04-07 19:58
2004.05.02
Как соеденить два IBQuery


1-1081932841
Pavel
2004-04-14 12:54
2004.05.02
Захват изображения


14-1081102647
Piter
2004-04-04 22:17
2004.05.02
А где народ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский