Página 1 de 1

Tem Internet ?

Enviado: 21 Fev 2018 14:59
por Itamar M. Lins Jr.
Ola!

Código: Selecionar todos

Function Main
SETMODE(25,80)
        Alert(IIF(TemInternet(),"Conectado","Não Conectado"))
return NIL        

    FUNCTION TemInternet( nTimeout )
       LOCAL aAddr := hb_socketResolveINetAddr( "www.google.com", 80 )       
       RETURN  !Empty( aAddr ) .and. hb_socketConnect( pSocket := hb_socketOpen(), aAddr, hb_defaultValue( nTimeout, 2000 ) ) .and. hb_socketClose( pSocket )
Harbour puro sem as presepadas do windows.
Peguei no forum do xHarbour, e modifiquei para fechar a conexão.

Saudações,
Itamar M. Lins Jr.

Tem Internet ?

Enviado: 21 Fev 2018 17:49
por JoséQuintas
Não entendi porque xHarbour...

Peguei do fórum do Harbour há muito tempo, e uso isto:

Código: Selecionar todos

FUNCTION IsInternet( cUrl, nPort )

   LOCAL lOk := .F. , aAddr

   hb_Default( @cUrl, "www.google.com" )
   hb_Default( @nPort, 80 )
   aAddr := hb_socketResolveINetAddr( cUrl, nPort )
   IF ! Empty( aAddr )
      lOk := hb_socketConnect( hb_socketOpen(), aAddr, 2000 )
   ENDIF

   RETURN lOk

Tem Internet ?

Enviado: 21 Fev 2018 17:52
por JoséQuintas

Tem Internet ?

Enviado: 22 Fev 2018 09:36
por Itamar M. Lins Jr.
Ola!
Pois é o povo! copiando e colando as coisas dos outros sem dar os devidos créditos.
Então faltou do hb_SocketClose(), tem outro exemplo sem ser esse do Przmek que ele coloca o close, só fiz acrescentar.
Abriu a conexão tem que fechar.
Sabe como é o povo do xHarbour... só copiando as coisas do Harbour 3.2 e 3.4, de 2 em dois meses rsrsrs, para dizer que aquilo lá não tá abandonado.
Alias, eu não achei documentos ensinando como usar essas funções "socket" apenas alguns exemplos do Przmek.

Saudações,
Itamar M. Lins Jr.

Tem Internet ?

Enviado: 22 Fev 2018 09:42
por JoséQuintas
Eu acho que a conexão parada acaba morrendo sozinha.
Aliás, some variável e some tudo.... rs
Uso isso no meu servidor pra testar se tem internet.... é 24 horas rodando faz tempo.

Tem Internet ?

Enviado: 22 Fev 2018 14:40
por Nascimento
isso é ótimo eu tinha uma , mais não estava muito boa as vezes dava erro, vou testar essa!