xSlayerx 0 #1 Posted July 18, 2008 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.TextPassa o IP digitado no Edt_IP para o ClientSocketClientSocket.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 SrtToIntClientSocket.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çãoClientSocket.Active := False;Desativa o ClientSocketSocket.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çãoClientSocket.Active := False;Desativa o ClientSocketabort;aborta para que não seja mostrada uma menssagem de erro do Delphi por não ter se conectadoObs: 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 Share this post Link to post Share on other sites
benedict 0 #2 Posted May 12, 2009 Nossa, precisava disso! vlw Share this post Link to post Share on other sites
Rdgxnk 0 #3 Posted May 15, 2009 É... realmente funciona... bom tutorial.. creditos ? Share this post Link to post Share on other sites
higan 0 #4 Posted July 30, 2009 Funciona bem! parabens! Share this post Link to post Share on other sites
Antharaz 4 #5 Posted January 14, 2010 É... 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 #6 Posted February 1, 2010 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 #7 Posted February 11, 2010 Up! Funciono aki tambem vlw ae por postar esse TOPICO Obrigado!!! Share this post Link to post Share on other sites
kakilo123 0 #8 Posted March 11, 2010 Há alguma forma de fazer isso utilizando o VB6? Espero a resposta. Share this post Link to post Share on other sites
_LG_ 1 #9 Posted March 11, 2010 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