It looks like ActiveState perl strikes again. Before I start reading from the IO::Socket in the Client3 I can write to it. Once I start reading from it in Client3::get_message() what I write to the socket is never sent to the other side of the socket. I guess it is blocking.