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.