UDP and Static IP

HJWalter's response was also the clue that I needed to use UDP with a Static IP address. Thank You.

But how to get the local DNS and what if it changes? In my case, ipconfig listed 2 DNS Servers.

My solution is to connect to the local network with a dynamic IP address, gather the needed information, then set the WiFi.config() with the desired Fixed IP Address and the 'learned' Local DNS, Subnet, and Gateway.

    //  Connect to Local Network with credentials
    WiFi.begin( NVM_Data.Network, NVM_Data.Password );

    //  Wait for WiFi connection, or TimeOut
    while( WiFi.status() != WL_CONNECTED )
    {
      Serial.print( "." );
      delay( 500 );
      
      if( Init )
      {
        if( ++Trys >= WIFI_STA_TRYS )
        {
          /*  Unable to connect to Local Network at Initialization.
              Assume bad credentials. Exit loop so changes can be made via
              Access Point; 
          */
          WiFiMode = WIFI_AP;
          WiFi.mode( WiFiMode );
          break;
        }
      }
    }
    
    if( WiFi.status() == WL_CONNECTED )
    {
      //  Connection made to Local Network
      Serial.printf( "\r\nConnected to " );
      Serial.println( WiFi.SSID() );
      Serial.println( "  IP Address: " + WiFi.localIP().toString() );
      Serial.println( "  Local DNS: " + WiFi.dnsIP().toString() );
      Serial.println( "  Subnet Mask: " + WiFi.subnetMask().toString() );
      Serial.println( "  Gateway: " + WiFi.gatewayIP().toString() );

      if( DeviceIP.fromString( NVM_Data.DeviceIP ) )
      {
        //  DeviceIP is valid, now set Fixed device IP Address with Network info learned at connection        
        Serial.printf( "\r\nSetting Fixed IP Address %s\r\n", NVM_Data.DeviceIP );
        WiFi.config( DeviceIP, WiFi.dnsIP(), WiFi.gatewayIP(), WiFi.subnetMask() );
        
        //  Local Network Info
        Serial.println( "  IP Address: " + WiFi.localIP().toString() );
        Serial.println( "  Local DNS: " + WiFi.dnsIP().toString() );
        Serial.println( "  Subnet Mask: " + WiFi.subnetMask().toString() );
        Serial.println( "  Gateway: " + WiFi.gatewayIP().toString() );
      }
      else
      {
        Serial.println( "Invalid Fixed Device IP Address" );
      }
      EventLogAdd( EVENT_WIFI_STA_CONNECT_OK );
    }
    else
    {
      //  Connection to Local Network Failed
      Serial.printf( "\r\nConnection to %s Failed\r\n", NVM_Data.Network );
           
      EventLogAdd( EVENT_WIFI_STA_CONNECT_FAIL );
    }
  }
  else
  {
    //  Local Network Credentials are invalid, just start Access Point
    WiFiMode = WIFI_AP;
    WiFi.persistent(false); // Do not write new connections to FLASH
  }

GregryCM