class Gio::SocketConnection

Overview

#GSocketConnection is a #GIOStream for a connected socket. They can be created either by #GSocketClient when connecting to a host, or by #GSocketListener when accepting a new client.

The type of the #GSocketConnection object returned from these calls depends on the type of the underlying socket that is in use. For instance, for a TCP/IP connection it will be a #GTcpConnection.

Choosing what type of object to construct is done with the socket connection factory, and it is possible for 3rd parties to register custom socket connection types for specific combination of socket family/type/protocol using g_socket_connection_factory_register_type().

To close a #GSocketConnection, use g_io_stream_close(). Closing both substreams of the #GIOStream separately will not close the underlying #GSocket.

Direct Known Subclasses

Defined in:

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

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class Gio::IOStream

==(other : self) ==, clear_pending : Nil clear_pending, close(cancellable : Gio::Cancellable | Nil) : Bool close, close_async(io_priority : Int32, cancellable : Gio::Cancellable | Nil, callback : Gio::AsyncReadyCallback | Nil, user_data : Pointer(Void) | Nil) : Nil close_async, close_finish(result : Gio::AsyncResult) : Bool close_finish, closed? : Bool closed?, has_pending : Bool has_pending, hash(hasher) hash, input_stream : Gio::InputStream input_stream, is_closed : Bool is_closed, output_stream : Gio::OutputStream output_stream, set_pending : Bool set_pending, splice_async(stream2 : Gio::IOStream, flags : Gio::IOStreamSpliceFlags, io_priority : Int32, cancellable : Gio::Cancellable | Nil, callback : Gio::AsyncReadyCallback | Nil, user_data : Pointer(Void) | Nil) : Nil splice_async, splice_finish(result : Gio::AsyncResult) : Bool splice_finish

Constructor methods inherited from class Gio::IOStream

new
new(*, closed : Bool | Nil = nil, input_stream : Gio::InputStream | Nil = nil, output_stream : Gio::OutputStream | Nil = nil)
new

Class methods inherited from class Gio::IOStream

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 #

Initialize a new SocketConnection.


[View source]
def self.new(*, closed : Bool | Nil = nil, input_stream : Gio::InputStream | Nil = nil, output_stream : Gio::OutputStream | Nil = nil, socket : Gio::Socket | Nil = nil) #

[View source]

Class Method Detail

def self.factory_lookup_type(family : Gio::SocketFamily, type : Gio::SocketType, protocol_id : Int32) : UInt64 #

Looks up the #GType to be used when creating socket connections on sockets with the specified family, type and protocol_id.

If no type is registered, the #GSocketConnection base type is returned.


[View source]
def self.factory_register_type(g_type : UInt64, family : Gio::SocketFamily, type : Gio::SocketType, protocol : Int32) : Nil #

Looks up the #GType to be used when creating socket connections on sockets with the specified family, type and protocol.

If no type is registered, the #GSocketConnection base type is returned.


[View source]
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 connect(address : Gio::SocketAddress, cancellable : Gio::Cancellable | Nil) : Bool #

Connect connection to the specified remote address.


[View source]
def connect_async(address : Gio::SocketAddress, cancellable : Gio::Cancellable | Nil, callback : Gio::AsyncReadyCallback | Nil, user_data : Pointer(Void) | Nil) : Nil #

Asynchronously connect connection to the specified remote address.

This clears the #GSocket:blocking flag on connection's underlying socket if it is currently set.

Use g_socket_connection_connect_finish() to retrieve the result.


[View source]
def connect_finish(result : Gio::AsyncResult) : Bool #

Gets the result of a g_socket_connection_connect_async() call.


[View source]
def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def is_connected : Bool #

Checks if connection is connected. This is equivalent to calling g_socket_is_connected() on connection's underlying #GSocket.


[View source]
def local_address : Gio::SocketAddress #

Try to get the local address of a socket connection.


[View source]
def remote_address : Gio::SocketAddress #

Try to get the remote address of a socket connection.

Since GLib 2.40, when used with g_socket_client_connect() or g_socket_client_connect_async(), during emission of %G_SOCKET_CLIENT_CONNECTING, this function will return the remote address that will be used for the connection. This allows applications to print e.g. "Connecting to example.com (10.42.77.3)...".


[View source]
def socket : Gio::Socket #

Gets the underlying #GSocket object of the connection. This can be useful if you want to do something unusual on it not supported by the #GSocketConnection APIs.


[View source]
def socket=(value : Gio::Socket | Nil) : Gio::Socket | Nil #

[View source]