use async_send to avoid socket stalling