in reply to How my server programmer is bi-directional using the send() and recv() functions???
I suggest you investigate the four argument version of select, either from perlfunc or IO::Select. This enables you to wait on both read and write sockets, since it appears you do not know who will be doing the write first.