GioSocketListener

since: 2.22

描述 [src]

class Gio.SocketListener : GObject.Object
{
  priv: GSocketListenerPrivate*
}

GSocketListener 是一个对象,用于跟踪一组服务器套接字,并帮助你从任何套接字接受套接字,无论是同步还是异步。

使用 g_socket_listener_add_address()g_socket_listener_add_inet_port() 添加要监听的地址和端口号。这些将在调用 g_socket_listener_close() 之前被监听。放下对 GSocketListener 的最后引用不会导致隐式调用 g_socket_listener_close(),因为还有对 GSocketListener 的引用可能被内部保留。

如果您想实现网络服务器,也可以查看 GSocketServiceGThreadedSocketService,它们是 GSocketListener 的子类,可以使这个过程变得更简单。

Available since: 2.22

祖先

构造函数

g_socket_listener_new

创建一个新的 GSocketListener 对象,没有要监听的套接字。可以使用如 g_socket_listener_add_address()g_socket_listener_add_inet_port() 添加新监听器。

since: 2.22

实例方法

g_socket_listener_accept

阻塞等待客户端连接到任何添加到监听器的套接字。返回被接受的套接字的 GSocketConnection

since: 2.22

g_socket_listener_accept_async

这是 g_socket_listener_accept 的异步版本。

since: 2.22

g_socket_listener_accept_finish

完成异步接受操作。请参阅 g_socket_listener_accept_async()。

since: 2.22

g_socket_listener_accept_socket

阻塞等待客户端连接到任何添加到监听器的套接字。返回被接受的套接字的 GSocket

since: 2.22

g_socket_listener_accept_socket_async

这是 g_socket_listener_accept_socket 的异步版本。

since: 2.22

g_socket_listener_accept_socket_finish

完成异步接受操作。请参阅 g_socket_listener_accept_socket_async()。

since: 2.22

g_socket_listener_add_address

创建一个类型为 type 和协议 protocol 的套接字,将其绑定到 address 并将其添加到我们从其接受套接字的一组套接字中。

since: 2.22

g_socket_listener_add_any_inet_port

监听所有可用的端口号,对IPv6和IPv4(如果有可用)进行TCP连接。

从:2.24

g_socket_listener_add_inet_port

是g_socket_listener_add_address的辅助函数,它创建一个TCP/IP套接字,在所有接口上指定端口监听IPv4和IPv6(如果支持)。

since: 2.22

g_socket_listener_add_socket

将socket添加到我们尝试从中接受新客户端的套接字集合中。该套接字必须绑定到本地地址并监听。

since: 2.22

g_socket_listener_close

关闭监听器中的所有套接字。

since: 2.22

g_socket_listener_set_backlog

设置监听器中套接字的监听队列数量。在添加任何套接字、地址或端口到GSocketListener之前(例如,通过调用g_socket_listener_add_inet_port())必须调用此函数才能生效。

since: 2.22

从GObject继承的方法(43个)

请参阅GObject了解方法的完整列表。

属性

Gio.SocketListener:listen-backlog

监听队列中未完成的连接数目。

since: 2.22

信号

Gio.SocketListener::event

当listener的活动状态在socket上改变时发出信号。注意,当listener用于同时监听IPv4和IPv6时,将分别发出一组信号,其发生顺序是未定义的。

从:2.46

从GObject继承的信号(1个)
GObject::notify

当一个对象的属性通过g_object_set_property(), g_object_set()等设置值时,将发出notify信号。

类结构

struct GioSocketListenerClass {
  GObjectClass parent_class;
  void (* changed) (
    GSocketListener* listener
  );
  void (* event) (
    GSocketListener* listener,
    GSocketListenerEvent event,
    GSocket* socket
  );
  void (* _g_reserved2) (
void
  );
  void (* _g_reserved3) (
void
  );
  void (* _g_reserved4) (
void
  );
  void (* _g_reserved5) (
void
  );
  void (* _g_reserved6) (
void
  );
  
}

GSocketListener的类结构。

类成员
parent_class: GObjectClass

无描述。

changed: void (* changed) ( GSocketListener* listener )

当一个套接字监听集合改变时调用的虚拟方法。

event: void (* event) ( GSocketListener* listener, GSocketListenerEvent event, GSocket* socket )

无描述。

_g_reserved2: void (* _gReserved2) ( void )

无描述。

_g_reserved3: void (* _gReserved3) ( void )

无描述。

_g_reserved4: void (* _gReserved4) ( void )

无描述。

_g_reserved5: void (* _gReserved5) ( void )

无描述。

_g_reserved6: void (* _gReserved6) ( void )

无描述。

虚拟方法

Gio.SocketListenerClass.changed

当一个套接字监听集合改变时调用的虚拟方法。