SrvTarget
Object Hierarchy:
Description:
[ Compact ]
public class SrvTarget
A single target host/port that a network service is running on.
SRV (service) records are used by some network protocols to provide service-specific aliasing and load-balancing. For example, XMPP (Jabber) uses SRV records to locate the XMPP server for a domain; rather than connecting directly to ‘example.com’ or assuming a specific server hostname like ‘xmpp.example.com’, an XMPP client would look up the `xmpp-client` SRV record for ‘example.com’, and then connect to whatever host was pointed to by that record.
You can use [method@Gio.Resolver.lookup_service] or [method@Gio.Resolver.lookup_service_async] to find the `GSrvTarget`s for a given service. However, if you are simply planning to connect to the remote service, you can use [class@Gio.NetworkService]’s [iface@Gio.SocketConnectable] interface and not need to worry about `GSrvTarget` at all.
Example: Print Srv-records for a service:
public static int main () {
try {
Resolver resolver = Resolver.get_default ();
List<SrvTarget> targets = resolver.lookup_service ("pop3", "tcp", "gmail.com", null);
foreach (SrvTarget target in targets) {
print ("host: %s\n", target.get_hostname ());
print (" port: %hu\n", target.get_port ());
print (" priority: %hu\n", target.get_priority ());
print (" weight: %hu\n", target.get_weight ());
}
} catch (Error e) {
print ("Error: %s\n", e.message);
}
return 0;
}
valac --pkg gio-2.0 GLib.SrvTarget.vala