Fecha actual Mar Jul 01, 2025 2:46 pm

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 2 mensajes ] 
Autor Mensaje
NotaPublicado: Jue Nov 16, 2006 2:49 pm 

Registrado: Jue Jul 20, 2006 8:36 pm
Mensajes: 143
Ubicación: Bilbao
He encontrado este codigo para hacer un ping en foxpro, alguien se anima a portarlo a C3? Nos permite hacer un ping a un puerto determinado y saber si un servicio esta a la escucha o no.
* Valores de State de Windows Socket:
*
* 0 - sin conexion activa
* 4 - resolviendo el host
* 6 - no hay nadie o conectando ...
* 7 - ok
* 8 - error en la comunicacion con el servidor
* 9 - hay alguien pero o UNIX, no server o no bien configurado
*
* Creación : 02/06/2002 Pablo Roca
* Ultima Modificacion: 10/06/2002 Pablo Roca
*

FUNCTION pingWS
LPARAMETERS tchost, tnpuerto

LOCAL loWS, llret, lnini
loWS = CREATEOBJECT("MSWinSock.Winsock")
loWS.Connect(tchost, tnpuerto)
lnini = SECONDS()
DO WHILE SECONDS()-lnini<.3
ENDDO
IF loWS.state = 7 OR loWS.state = 9
llret = .T.
ENDIF
loWS.Close()
RELEASE loWS
RETURN llret

_________________
(C) Josu Udaondo...el fiera de clipper 5
Bilbao 2006


Arriba
 Perfil  
Responder citando  
NotaPublicado: Vie Nov 17, 2006 11:50 am 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
ironmansp escribió:
He encontrado este codigo para hacer un ping en foxpro, alguien se anima a portarlo a C3? Nos permite hacer un ping a un puerto determinado y saber si un servicio esta a la escucha o no.
* Valores de State de Windows Socket:
*
* 0 - sin conexion activa
* 4 - resolviendo el host
* 6 - no hay nadie o conectando ...
* 7 - ok
* 8 - error en la comunicacion con el servidor
* 9 - hay alguien pero o UNIX, no server o no bien configurado
*
* Creación : 02/06/2002 Pablo Roca
* Ultima Modificacion: 10/06/2002 Pablo Roca
*

FUNCTION pingWS
LPARAMETERS tchost, tnpuerto

LOCAL loWS, llret, lnini
loWS = CREATEOBJECT("MSWinSock.Winsock")
loWS.Connect(tchost, tnpuerto)
lnini = SECONDS()
DO WHILE SECONDS()-lnini<.3
ENDDO
IF loWS.state = 7 OR loWS.state = 9
llret = .T.
ENDIF
loWS.Close()
RELEASE loWS
RETURN llret


Hola, fiera!!!!

A ver, la conversion no tiene problemas...., el problema lo tienes porque necesitas tener y registrar el activeX correspondiente (en este caso MSWinsck.ocx, que no se instala por defecto en windows). Yo he seguido los siguientes pasos y lo he logrado:

1º Instalas VisualBasic (6 en mi caso)
2º Ya'sta!!!

Si no lo haces así y tratas de registrar el ocx, te dará un error de licencia....

He realizado dos pruebas y una esta Ok, la otra no lo sé...

local ws, ipaddress

/* Create Winsock Object */
ws := TOLEContainer():Create( "MSWinsock.Winsock.1" )

if ws[1] = 0
? "Error"
return
endif

/* Retrieve LocalIP property */
ipaddress = ws:LocalIP

? "La IP local es: " + ipaddress

ws:Destroy()

Esta es la tuya, pero no he mirado a fondo....

LOCAL loWS, llret, lnini

loWS = TOLEContainer():Create( "MSWinsock.Winsock.1" )
loWS:Connect("192.168.0.51", 80)
lnini = SECONDS()
DO WHILE SECONDS()-lnini<.3
ENDDO
IF loWS:state = 7 .OR. loWS:state = 9
llret = .T.
ENDIF
loWS:Close()
loWS:Destroy()

? llret

Bueno, como nota te dire que en internet (de donde he sacado la información) no aconsejan el uso de este ocx, porque el peligro de virus es muy grande....

Pos estoestodoamigos.

_________________
Un saludo.
Jesús P. Melgar Velasco


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 2 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a: