allow closing of socket without killing actor
Add listen! for async listening