>>#define true .T. >>#define false .F. >> >>set procedure to .\prog\PingBits additive >> >>local success >>success = true >> >> >>local obj >> >>local replyAddress, ; >> replyStatus, ; >> replyRoundTripTime, ; >> replyDataSize, ; >> replyData >> >>local pingArray[4] >>pingArray[1] = '192.168.0.2' >>pingarray[2] = 'www.altavista.com' >>pingarray[3] = 'www.levelextreme.com' >> >>pingarray[4] = 'www.abc.pp.com' >> >>do case >>case !m.success >> >>case !PingBits_Object(@m.obj) >> assert false >> success = false >> >>otherwise >> local site, reachable >> >> >> for each site in pingarray >> ?m.site, chr(0x09) >> reachable= m.obj.Ping( ; >> m.site, ; >> 1000, ; >> @m.replyAddress, ; >> @m.replyStatus, ; >> @m.replyRoundTripTime, ; >> @m.replyDataSize, ; >> @m.replyData ; >> ) >> >> if( !m.reachable) >> ?? 'Failed' >> >> else >> ?? 'ms= ', replyRoundTripTime, 'address = ', replyAddress, ' received: ', m.replyData >> >> endif >> >> endfor >> >>endcase >>>Thank you! - that looks excellent. Won't have time to look at it properly until later (one immediate snag though - I'm on VPF 8 so CTOBIN() doesn't support the flags parameter....)