code: func (c *Client) SendAndReadOne(packet *dhcp4.Packet) (*dhcp4.Packet, error) {
  	ctx, cancel := context.WithCancel(context.Background())
  	wg, out, errCh := c.SimpleSendAndRead(ctx, DefaultServers, packet)
  	defer func() {
  		// Explicitly cancel first, then wait.
  		cancel()
  		wg.Wait()
  	}()
  
  	if response, ok := <-out; ok {
  		// We're just gonna take the first packet.
  		return response.Packet, nil
  	}
  	if err, ok := <-errCh; ok && err != nil {
  		return nil, err
  	}
  	return nil, fmt.Errorf("no packet received")
  }
docs: // SendAndReadOne sends one packet and returns the first response returned by
  // any server.