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:
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!