Back to Seed Clases

Gio


Classes

Interfaces

Structs

Unions

Enums

GObject.Object
parent-child marker Gio.Socket

Class Gio.Socket

Import line: Gio = imports.gi.Gio;
GIR File: Gio-2.0.gir
C documentation: GSocket
Class : Socket
Implements: Gio.Initable
Extends: GObject.Object
A GSocket is a low-level networking primitive. It is a more or less
direct mapping of the BSD socket API in a portable GObject based API.
It supports both the UNIX socket implementations and winsock2 on Windows.
GSocket is the platform independent base upon which the higher level
network primitives are based. Applications are not typically meant to
use it directly, but rather through classes like GSocketClient,
GSocketService and GSocketConnection. However there may be cases where
direct use of GSocket is useful.
GSocket implements the GInitable interface, so if it is manually constructed
by e.g. g_object_new() you must call g_initable_init() and check the
results before using the object. This is done automatically in
g_socket_new() and g_socket_new_from_fd(), so these functions can return
NULL.
Sockets operate in two general modes, blocking or non-blocking. When
in blocking mode all operations block until the requested operation
is finished or there is an error. In non-blocking mode all calls that
would block return immediately with a G_IO_ERROR_WOULD_BLOCK error.
To know when a call would successfully run you can call g_socket_condition_check(),
or g_socket_condition_wait(). You can also use g_socket_create_source() and
attach it to a GMainContext to get callbacks when I/O is possible.
Note that all sockets are always set to non blocking mode in the system, and
blocking mode is emulated in GSocket.
When working in non-blocking mode applications should always be able to
handle getting a G_IO_ERROR_WOULD_BLOCK error even when some other
function said that I/O was possible. This can easily happen in case
of a race condition in the application, but it can also happen for other
reasons. For instance, on Windows a socket is always seen as writable
until a write returns G_IO_ERROR_WOULD_BLOCK.
GSockets can be either connection oriented or datagram based.
For connection oriented types you must first establish a connection by
either connecting to an address or accepting a connection from another
address. For connectionless socket types the target/source address is
specified or received in each I/O operation.
All socket file descriptors are set to be close-on-exec.
Note that creating a GSocket causes the signal SIGPIPE to be
ignored for the remainder of the program. If you are writing a
command-line utility that uses GSocket, you may need to take into
account the fact that your program will not automatically be killed
if it tries to write to stdout after it has been closed.
Properties
Properties Defined By
Methods / Constructors
Method / Constructor Defined By
Events
None
Used by These Methods / Signals / Properties
Class / Namespace Method / Signal / Properties
Gio.SocketConnection
Property
socket : Gio.Socket
Gio.SocketConnection
Method
get_socket () : Gio.Socket
Gets the underlying GSocket object of the connection.
Gio.SocketListener
Method
accept_socket (Object out_values, Cancellable cancellable) : Gio.Socket
Blocks waiting for a client to connect to any of the sockets added
to the listener.
Gio.SocketListener
Method
accept_socket_finish (AsyncResult result, Object out_values) : Gio.Socket
Finishes an async accept operation.
Gio.SocketListener
Method
add_socket (Socket socket, Object source_object) : gboolean
Adds socket to the set of sockets that we try to accept
new clients from.
Gio.TcpWrapperConnection
Method
new Gio.TcpWrapperConnection.c_new (IOStream base_io_stream, Socket socket) : Gio.SocketConnection
Create a new Gio.TcpWrapperConnection
Documentation generated by Introspection Doc Generator Loosely Based on JsDoc Toolkit on Sat Apr 16 2011 17:11:16 GMT+0800 (HKT)