See Re: How to do simultaneous reads and writes to/from a socket?.
In reply to Re^3: make my code non block by BrowserUk in thread make my code non block by wavenator