I have this problem regarding socket programming. I have a server listening on 4 ports and a client connected to them. I have separate threads for each channel/port on both client and server. But I am facing a problem with blocking read call.What if I need to write to the socket while it is blocked on a read? Should I create another thread for the writing (which means I have to worry about deadlock/race conditions, right?) or can I somehow interrupt the thread, abort the blocked read command and write instead?