fix bug and add asyncsocket