One of the wisdom I got from your post is that one can read and write between the process with a single TCP connection. Also I cross verified from the below link
in reply to socket read buffer full
Note: Actual point discussed over the link specified is not related to this !! But it has underlying concepts related to the TCP !!
So there is nothing wrong in performing both read and write in a single socket. Define in your coding as per your requirement/need in both end of the connection ( i.e in two related process ) !!