pub async fn new_client_with_device<D>( device: D, token: CancellationToken, sserver_port: Receiver<u16>, ) -> Result<(), Box<dyn Error>>where D: AsyncRead + AsyncWrite + Unpin + Send + 'static,