pub async fn send_to<A>(&self, frag: u8, buf: &[u8], target: A) -> Result<usize, Error>
    where
        A: Into<Address>,
    {
        self.check_associated()?;

        let header = UdpAssociateHeader::new(frag, target.into());
        let header_len = header.serialized_len();
        let mut send_buf = BytesMut::with_capacity(header.serialized_len() + buf.len());
        header.write_to_buf(&mut send_buf);
        send_buf.put_slice(buf);

        let n = self.socket.send(&send_buf).await?;
        Ok(n.saturating_sub(header_len))
    }
Returns a future that sends data on the socket to the given address.
crates/shadowsocks-service/src/local/socks/client/socks5/udp_client.rs