On the server, that's pretty much how it's setup.

This is the client side, which is 90% what I need. When I create the connection, a separate thread is made that does the listening, and shoots everything into an event.

From what I can tell, the listening thread interfere's with the Read/Write thread, so I am not sure what the problem is.