Both a sender and a receiver should continue to use a select() call on the alert socket to watch for asynchronous error conditions. The select() call can be in separate thread, or it can be a select() call that is used in sending or receiving the data stream.