pub async fn connect(
        context: &Context,
        bind_addr: &ManagerAddr,
        connect_opts: &ConnectOpts,
    ) -> Result<Self, Error> {
        ManagerDatagram::connect(context, bind_addr, connect_opts)
            .await
            .map(|socket| Self { socket })
            .map_err(Into::into)
    }
Create a `ManagerDatagram` for sending data to manager
crates/shadowsocks/src/manager/client.rs