类
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
的引用可能被内部保留。
如果您想实现网络服务器,也可以查看 GSocketService
和 GThreadedSocketService
,它们是 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_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_inet_port
是g_socket_listener_add_address的辅助函数,它创建一个TCP/IP套接字,在所有接口上指定端口监听IPv4和IPv6(如果支持)。
since: 2.22
g_socket_listener_set_backlog
设置监听器中套接字的监听队列数量。在添加任何套接字、地址或端口到GSocketListener之前(例如,通过调用g_socket_listener_add_inet_port())必须调用此函数才能生效。
since: 2.22
从GObject继承的方法(43个)
请参阅GObject了解方法的完整列表。
信号
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 )
无描述。