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

Constructor methods inherited from module Gio::SocketConnectable

cast(obj : GObject::Object) : self cast

Class methods inherited from module Gio::SocketConnectable

cast?(obj : GObject::Object) : self | Nil cast?, g_type : UInt64 g_type

Instance methods inherited from class GObject::Object

==(other : self) ==, 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) | Nil data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, hash(hasher) hash, 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) | Nil qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void) | Nil) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void) | Nil steal_data, steal_qdata(quark : UInt32) : Pointer(Void) | Nil 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, 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

cast?(obj : GObject::Object) : self | Nil cast?, compat_control(what : UInt64, data : Pointer(Void) | Nil) : 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.


[View source]
def self.new #

Initialize a new NetworkAddress.


[View source]
def self.new(*, hostname : String | Nil = nil, port : UInt32 | Nil = nil, scheme : String | Nil = nil) #

[View source]
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.


[View source]

Class Method Detail

def self.g_type : UInt64 #

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


[View source]

Instance Method Detail

def ==(other : self) #
Description copied from class Reference

Returns true if this reference is the same as other. Invokes same?.


def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def hostname : String #

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


[View source]
def hostname=(value : String) : String #

[View source]
def parse(host_and_port : String, default_port : UInt16) : Gio::NetworkAddress #

[View source]
def parse_uri(uri : String, default_port : UInt16) : Gio::NetworkAddress #

[View source]
def port : UInt16 #

Gets addr's port number


[View source]
def port=(value : UInt32) : UInt32 #

[View source]
def scheme : String | Nil #

Gets addr's scheme


[View source]
def scheme=(value : String) : String #

[View source]