Remove TCPSocket and use MessageProcessor instead

Yeah, `readData` could be moved into `exec` now, it's less complex now compared to with TCPSocket.