Following on from POE::Component::Proxy::SOCKS I thought it might be a really good idea to write a generic component to allow SOCKSification from any other PoCo or POE session.
So I came up with POE::Component::Client::SOCKS .
It deals with all the messy SOCKS negotiation and dependent on the result either sends back a socket handle that one may use with POE::Wheel::ReadWrite or a failure event.
It's still slightly experimental, but works for me. Enjoy.