Im using IO::Socket::SSL to communicate between a central site and several (hundred) machines. Its backwards from the normal 'server/client' relationship as the one machine acts as a client to download info from the many (server) processes.
The issue Im facing is sometimes the server process will accept the socket->new and return what appears to be a valid connection but any attempt to sysread hangs. I was hoping to change to an asynchronous connection in an attempt to time out this 'block' but Im not sure how to do it.
Should I go with a select() and attempt to trap errors and timeouts or use a threading model to 'watch' the process? Other suggestions?
FWIW I have been trying to put together a 'select' solution but am not having much luck getting the code structured properly around the various IO calls I need to make.