Jump to content
Sign in to follow this  
xSlayerx

[Iniciante] Checar se server está on/off

Recommended Posts

xSlayerx    0
xSlayerx

irei ensinar como saber se um servidor está online ou offline atravez do ip e port, vamos la:

 

 

Componentes

 

* Adicione em seu formulário um componente ClientSocket (localizado na paleta Internet), 1 Button e 2 Edits (1 para IP e outro para Port).

 

* Altere as seguintes propriedades do ClientSocket:

- Active: False

- ClientType: ctNonBlocking

- Name: ClientSocket

 

* Altere o nome dos Edits para:

- Edt_IP

- Edt_Port

 

* Altere o nome do Button1 para Btn_Checar

 

* Altere o nome do Formulário para Frm_Principal

 

 

 

 

Programação

 

* No evendo OnClick do Btn_Checar coloque:

ClientSocket.Host := Edt_IP.Text;

ClientSocket.Port := StrToInt(Edt_Port.Text);

ClientSocket.Active := True;

Explicando:
ClientSocket.Host := Edt_IP.Text
Passa o IP digitado no Edt_IP para o ClientSocket
ClientSocket.Port := StrToInt(Edt_Port.Text);
Passa a Port digitada do Edt_Port para o ClientSocket convertendo-a de String (Texto) para Integer (Inteiro) atraves do SrtToInt
ClientSocket.Active := True;
Ativa o ClientSocket para que ele tente se conectar com o servidor atravez do IP e da Port

 

 

 

* No evento OnConnect do ClientSocket coloque isto:

MessageBox(Frm_Principal.Handle, 'Servidor está online', 'Checar Status', mb_OK + mb_IconInformation);

ClientSocket.Active := False;

Socket.Disconnect(StrToInt(Edt_Port.Text));

Explicando:

MessageBox(Frm_Principal.Handle, 'Servidor está online', 'Checar Status', mb_OK + mb_IconInformation);
Exibe uma menssagem escrita 'Servidor está online' com o título de 'Checar Status' com um botão de OK e um Icone de informação
ClientSocket.Active := False;
Desativa o ClientSocket
Socket.Disconnect(StrToInt(Edt_Port.Text));
Disconecta o Socket

 

Obs: O evento OnConnect só será executado caso o ClientSocket consiga se conectar ao servidor

 

 

 

 

 

* No evento OnError do ClientSocket coloque:

MessageBox(Frm_Principal.Handle, 'Servidor está offline', 'Checar Status', mb_OK + mb_IconInformation);

ClientSocket.Active := False;

abort;

Explicando:
MessageBox(Frm_Principal.Handle, 'Servidor está offline', 'Checar Status', mb_OK + mb_IconInformation);
Exibe uma menssagem escrita 'Servidor está offline' com o título de 'Checar Status' com um botão de OK e um Icone de informação
ClientSocket.Active := False;
Desativa o ClientSocket
abort;
aborta para que não seja mostrada uma menssagem de erro do Delphi por não ter se conectado

Obs: O evento OnError só será executado caso o ClientSocket não se conectar com o servidor

 

 

 

 

 

Bom, é isso. Qualquer duvida poste aqui que eu tentarei resolver :D

Share this post


Link to post
Share on other sites
benedict    0
benedict

Nossa, precisava disso!

vlw

;)

Share this post


Link to post
Share on other sites
Rdgxnk    0
Rdgxnk

É...

 

realmente funciona...

 

bom tutorial..

 

creditos ?

Share this post


Link to post
Share on other sites
higan    0
higan

Funciona bem!

 

parabens!

Share this post


Link to post
Share on other sites
Antharaz    4
Antharaz
É...

 

realmente funciona...

 

bom tutorial..

 

creditos ?

 

nem precisa de créditos...

 

é um programa bem básico mesmo...

 

PS:.. Se você criasse o componente em runtime e usasse threads ficaria bem mais rápido, isto é, se fosse um programa que fizesse muitas verificações ao mesmo tempo...

Share this post


Link to post
Share on other sites
smeagoulh    0
smeagoulh

Uma melhor maneira é mandar um ping para o servidor e tratar o resultado, se o ping for 0(<1 é o mínimo) ou timed out, o servidor está fora do ar, e se estiver online, mostre a mensagem e ja diga como está a conecção pelo ping =)... mais rápido e fácil e com melhor resultado.

Share this post


Link to post
Share on other sites
Pandá s2    0
Pandá s2

Up! Funciono aki tambem vlw ae por postar esse TOPICO Obrigado!!!

Share this post


Link to post
Share on other sites
kakilo123    0
kakilo123

Há alguma forma de fazer isso utilizando o VB6?

Espero a resposta.

Share this post


Link to post
Share on other sites
_LG_    1
_LG_
Há alguma forma de fazer isso utilizando o VB6?

Espero a resposta.

 

Sim, a lógica sempre será a mesma,a partir do momento que você usa um linguagem que suporte socket é possível fazer isso.

Share this post


Link to post
Share on other sites
haxyy    0
haxyy

Muito bom!

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×