I have a program that needs to run on one machine with a copy of the same program running on another machine as a backup to the main. If the main program goes down for some reason the backup needs to take over and continue running as the main. What type of sockets would work for comunicating between the programs so each is aware of the status of the other through message traffic (such as Backup ok Main ok)