use TCPServer instead of TCPSocket