ПредишенСледващото

Както можете да видите алгоритъм за търсене е много проста, но този метод е сравнително бавен, разбира се всичко зависи от размера на локална мрежа. А сега нека да поговорим за компонента, с които ние работим. Този компонент е, както споменах по-рано част от Indy и се намира в раздела библиотека - IndyClients. както я наричат ​​- TIdIcmpClient. Този компонент ни дава точно такава възможност като пинг един-единствен хост. За наш проблем, ние определено се вписва. Това, което трябва да пинг всеки хост, съответно, на името на хоста, а след това от размера на опаковката, която ние ще изпратим на хост, както и необходимостта от пристанището на връзката и време.

Така че това, което ние правим, е да зададете името на хоста, след периода на изчакване. колко спирка изпращане на пакети, а след това с помощта на метода Ping ние изпращаме на опаковката, когато трябва да се уточни размерът на опаковката (не се изисква), и по Надпис (заглавие) нашия прозорец времето на показване в милисекунди за колко ни пакет с размерите на 32 байта е изпратена до домакина. На следващо място, ние подбираме нашите компонент TIdIcmpClient. След това отидете в списъка на събитие на компонента и изберете OnReply събитие. След това в случай, напишете следния код:

Какво правим тук, просто проверете наличието на нашите домакини, ако има такъв, след това добавете към списъка, ако не, тогава не се прави нищо, обикновено, ако няма домакин, домакин ще AReplyStatus.FromIpAddress тип 0.0.0.0.

Но програмата. която да се търси компютри в мрежата, много, особено за Windows

Източници статии, можете да го изтеглите от тук

употреби
Windows, съобщения, SysUtils, варианти, Курсове, графики, Контроли, формуляри,
Диалогови прозорци, IdBaseComponent, IdComponent, IdRawBase, IdRawClient,
IdIcmpClient, StdCtrls;

тип
TForm1 = клас (TForm)
btn1: TButton;
lst1: TListBox;
idcmpclnt1: TIdIcmpClient;
процедура btn1Click (Sender: TObject);
процедура idcmpclnt1Reply (ASender: TComponent;
конст AReplyStatus: TReplyStatus);
частен

обществен

приключи;

Var
Form1: TForm1;

процедура TForm1.btn1Click (Sender: TObject);
започвам
idcmpclnt1.Host:='176.194.204.175 ";
idcmpclnt1.ReceiveTimeout: = 100;
idcmpclnt1.Ping ('32);
Заглавие: = IntToStr (idcmpclnt1.ReplyStatus.MsRoundTripTime)
приключи;

процедура TForm1.idcmpclnt1Reply (ASender: TComponent;
конст AReplyStatus: TReplyStatus);
започвам
опитвам
ако idcmpclnt1.Host = AReplyStatus.FromIpAddress след lst1.Items.Add (AReplyStatus.FromIpAddress);
с изключение на
на д: Изключение направи
приключи;

Колко е, че не работи?

Свързани статии

Подкрепете проекта - споделете линка, благодаря!