DA

Checando Se O Servidor Está Online E Seu Ping!

Por dark rogue, 27 de jul. de 2009 em Pascal (Delphi)

6
5.7k
dark rogueD
27 de julho de 2009 às 11:27

Você vai precisar de:

2 Labels(Aba Standard)

2 Edits(Aba Standard)

1 Button(Aba Standard)

1 IcmpClient(Aba Indy Clients)

1 Client Socket(Aba Internet)

 

Crie uma nova aplicação e adicione todos os items listados acima.

Troque a capiton de um label para IP do servidor e a do otro label para Porta, logo em seguida troque a capiton do button para Checar!, organize-os desse modo:

 

checarip.png

 

No evento OnClick do Button1, coloque o seguinte código:

if edit1.Text > '' then
IdIcmpClient1.Host:= edit1.Text;
IdIcmpClient1.Port:= StrToInt(Edit2.Text);
IdIcmpClient1.Ping('AnalisePing');
ClientSocket1.Host := edit1.Text;
ClientSocket1.Port := StrToInt(edit2.Text);
ClientSocket1.Active := True;

Manter cada linha dentro de seus respectivos "pais" não é necessário, mas ajuda a manter a ordem e a legibilidade do código.

 

Agora, no evento OnConnect do ClientSocket1, coloque esse codigo:

MessageBox(form1.Handle, 'Online! :)', 'Status do server:', mb_OK + mb_IconInformation);
ClientSocket1.Active := False;
Socket.Disconnect(StrToInt(Edit1.Text));

 

No evento OnError do ClientSocket1, adicione isso:

  MessageBox(form1.Handle, 'Offline!;(', 'Status do server:', mb_OK + mb_IconInformation);
 ClientSocket1.Active := False;
 abort;
 errorcode :=0;

 

Eba, estamos quase lá, só falta configurar o IcmpClient, então vamos lá!

No evento OnReply do seu client Adicione isso:

  ShowMessage('IP: '+IdIcmpClient1.Host+#13+
 'Port: '+IntToStr(IdIcmpClient1.Port)+#13+
 'Ping: '+IntToStr(AReplyStatus.MsRoundTripTime)+' milisegundos');

 

Agora é só compilar e ser feliz \õ/

 

Duvidas sobre esse tutorial? poste aqui!

 

see ya!

Editado Julho 27 por dark rogue

tibiaa4eT
31 de julho de 2009 às 03:08

Muito bom

 

Ressuscitando a area de Delphi

 

Ahuahuahua

 

Meu conhecimento de Delphi em relação a conexão, sockets eh 0 :/

1 mês depois...
dark rogueD
12 de agosto de 2009 às 22:38

Desisti dessa seção e provavelmente desse fórum... tem muito fórum por ae dando muito valor pra programadores em delphi, perder tempo pra nem ao menos ver um obrigado é F*da >.<'

1 ano depois...
lolzotL
14 de novembro de 2010 às 12:32

Muito Bom, só não dou +rep por que to no limite de hj ;'(

3287323
20 de novembro de 2010 às 19:58

REP+ Me Ajudo Mesmo ;)

9 meses depois...
AntharazA
07 de agosto de 2011 às 20:23

Lembrando que se o firewall estiver habilitado para não responder requests icmp não irá funcionar...

 

Alguns vem com essa opção habilitada por causa de ataques DDOS :x