New method for opening existing socket on Linux

Turns out the old method may have worked just fine, the problem seems
lie in the low level calls made before the actual call to send() is made
in libc.  So both need to be tested.