Bonjour ,
Recherche comment faire un test pour voir si une machine PING , sans faire appel à la commande PING qui nécessite un CALL . Existe t'il des fonctions ?
Cordialement
C TALHOUET
02 97 61 66 21
PING DANS UN PGM RPG
solution simple dans un cl ...
PGM
DCL &HOST *CHAR 16
DCL &DTA *CHAR 12
DCL &DTA1 *CHAR 4
DCL &DTA2 *CHAR 4
/* TEST AVEC 3 PAQUETS SEULEMENT (5 PAR DÉFAUT) */
/* &HOST PEUT ÊTRE UNE ADRESSE IP OU UN NOM DE HOST (SI CONNU) */
PING RMTSYS(&HOST) NBRPKT(3)
/* TEST SI ERREUR DE SYNTAXE */
MONMSG MSGID(TCP0000 CPF0000) EXEC(DO)
CHGVAR &DTA1 ('0000')
CHGVAR &DTA2 ('0003')
GOTO SUITE
ENDDO
/* LECTURE DU RESULTAT */
RCVMSG PGMQ(*SAME) MSGTYPE(*LAST) RMV(*NO) +
MSGDTA(&DTA)
CHGVAR &DTA1 (%BIN(&DTA 1 4))
CHGVAR &DTA2 (%BIN(&DTA 5 4))
SUITE:
/* SUR DTA1 PAQUETS RECUS OU DTA2 PAQUETS EN ERREUR */
IF COND(&DTA1 *EQ '0003') THEN(DO)
/* TRAITEMENT SI OK */
ENDDO
ENDPGM
DCL &HOST *CHAR 16
DCL &DTA *CHAR 12
DCL &DTA1 *CHAR 4
DCL &DTA2 *CHAR 4
/* TEST AVEC 3 PAQUETS SEULEMENT (5 PAR DÉFAUT) */
/* &HOST PEUT ÊTRE UNE ADRESSE IP OU UN NOM DE HOST (SI CONNU) */
PING RMTSYS(&HOST) NBRPKT(3)
/* TEST SI ERREUR DE SYNTAXE */
MONMSG MSGID(TCP0000 CPF0000) EXEC(DO)
CHGVAR &DTA1 ('0000')
CHGVAR &DTA2 ('0003')
GOTO SUITE
ENDDO
/* LECTURE DU RESULTAT */
RCVMSG PGMQ(*SAME) MSGTYPE(*LAST) RMV(*NO) +
MSGDTA(&DTA)
CHGVAR &DTA1 (%BIN(&DTA 1 4))
CHGVAR &DTA2 (%BIN(&DTA 5 4))
SUITE:
/* SUR DTA1 PAQUETS RECUS OU DTA2 PAQUETS EN ERREUR */
IF COND(&DTA1 *EQ '0003') THEN(DO)
/* TRAITEMENT SI OK */
ENDDO
ENDPGM