SrvTarget


Object Hierarchy:

GLib.SrvTarget GLib.SrvTarget GLib.SrvTarget

Description:

[ CCode ( copy_function = "g_boxed_copy" , free_function = "g_boxed_free" , type_id = "g_srv_target_get_type ()" ) ]
[ Compact ]
public class SrvTarget

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 lookup_service or lookup_service_async to find the SrvTarget s for a given service. However, if you are simply planning to connect to the remote service, you can use NetworkService's SocketConnectable interface and not need to worry about SrvTarget 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

Namespace: GLib
Package: gio-2.0

Content:

Static methods:

Creation methods:

Methods:




2022 vala-language.org