class Gio::NetworkAddress

Overview

#GNetworkAddress provides an easy way to resolve a hostname and then attempt to connect to that host, handling the possibility of multiple IP addresses and multiple address families.

The enumeration results of resolved addresses may be cached as long as this object is kept alive which may have unexpected results if alive for too long.

See #GSocketConnectable for an example of using the connectable interface.

Included Modules

Defined in:

lib/gi-crystal/src/auto/gio-2.0/network_address.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from module Gio::SocketConnectable

enumerate : Gio::SocketAddressEnumerator enumerate, proxy_enumerate : Gio::SocketAddressEnumerator proxy_enumerate, to_string : String to_string, to_unsafe to_unsafe

Class methods inherited from module Gio::SocketConnectable

g_type : UInt64 g_type

Instance methods inherited from class GObject::Object

bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding bind_property, bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding bind_property_full, data(key : String) : Pointer(Void)? data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, notify(property_name : String) : Nil notify, notify_by_pspec(pspec : GObject::ParamSpec) : Nil notify_by_pspec, notify_signal notify_signal, property(property_name : String, value : _) : Nil property, qdata(quark : UInt32) : Pointer(Void)? qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void)?) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void)? steal_data, steal_qdata(quark : UInt32) : Pointer(Void)? steal_qdata, thaw_notify : Nil thaw_notify, to_unsafe : Pointer(Void) to_unsafe, watch_closure(closure : GObject::Closure) : Nil watch_closure

Constructor methods inherited from class GObject::Object

cast(obj : GObject::Object) : self cast, cast?(obj : GObject::Object) : self? cast?, new(pointer : Pointer(Void), transfer : GICrystal::Transfer)
new
new
, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv

Class methods inherited from class GObject::Object

compat_control(what : UInt64, data : Pointer(Void)?) : UInt64 compat_control, g_type : UInt64 g_type, interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec interface_find_property, interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec) interface_list_properties

Constructor Detail

def self.new(hostname : String, port : UInt16) : self #

Creates a new #GSocketConnectable for connecting to the given @hostname and @port.

Note that depending on the configuration of the machine, a @hostname of localhost may refer to the IPv4 loopback address only, or to both IPv4 and IPv6; use g_network_address_new_loopback() to create a #GNetworkAddress that is guaranteed to resolve to both addresses.


def self.new #

Initialize a new NetworkAddress.


def self.new(*, hostname : String? = nil, port : UInt32? = nil, scheme : String? = nil) #

def self.new_loopback(port : UInt16) : self #

Creates a new #GSocketConnectable for connecting to the local host over a loopback connection to the given @port. This is intended for use in connecting to local services which may be running on IPv4 or IPv6.

The connectable will return IPv4 and IPv6 loopback addresses, regardless of how the host resolves localhost. By contrast, g_network_address_new() will often only return an IPv4 address when resolving localhost, and an IPv6 address for localhost6.

g_network_address_get_hostname() will always return localhost for a #GNetworkAddress created with this constructor.


Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.


Instance Method Detail

def hostname : String #

Gets @addr's hostname. This might be either UTF-8 or ASCII-encoded, depending on what @addr was created with.


def hostname=(value : String) : String #

def parse(host_and_port : String, default_port : UInt16) : Gio::NetworkAddress #

def parse_uri(uri : String, default_port : UInt16) : Gio::NetworkAddress #

def port : UInt16 #

Gets @addr's port number


def port=(value : UInt32) : UInt32 #

def scheme : String? #

Gets @addr's scheme


def scheme=(value : String) : String #