use SocketAgent interface