The standard bitcoind/bitcoin-qt client lets you ask for the highest known block, via RPC, or get notifications when a new 'best block' is locally acknowledged (via the -blocknotify
option).
But, is there any way to tell when more than one equally-high blocks are circulating, and thus it's not yet clear which will win? Or does the standard client remain locked onto only the first block it receives, until it receives a definitively-longer chain?