[Q] Legal for separate threads to do I/O on same socket?

Hi,

I’d like to have one thread doing, essentially, gets() from
a socket, and another thread doing puts() to the same socket.
(Or send/recv… doesn’t have to be gets/puts if that makes
a difference…)

Is this legal? If not, would it be legal if the socket handle
were dup’d, giving one to the read thread and the other to the
write thread?

Thanks!

Bill