Use non-blocking read for TCPClient
Start implementing MessageParser