Like gio.network_address.NetworkAddress does with hostnames, gio.network_service.NetworkService provides an easy way to resolve a SRV record, and then attempt to connect to one of the hosts that implements that service, handling service priority/weighting, multiple IP addresses, and multiple address families.
Fluent builder for gio.network_service.NetworkService
Fluent builder implementation template for gio.network_service.NetworkService
Module for NetworkService class