方法

GIoSocketListener添加地址

自:2.22

声明 [源]

gboolean
g_socket_listener_add_address (
  GSocketListener* listener,
  GSocketAddress* address,
  GSocketType type,
  GSocketProtocol protocol,
  GObject* source_object,
  GSocketAddress** effective_address,
  GError** error
)

描述 [源]

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

请注意,根据平台,添加IPv6地址可能或可能不会导致同时接受IPv4连接的监听器。对于更确定的行为,请参阅g_socket_listener_add_inet_port()。

source_object将在各种接受调用中传递,以标识此类特定源,这在您在多个地址上监听并根据哪个地址连接执行不同操作时非常有用。

如果成功且effective_addressNULL,则它将被设置为绑定发生的地址。这对于确定请求绑定到端口0(即“any端”)时使用的端口号非常有用。如果请求,此地址属于调用者,必须释放。

调用g_socket_listener_close()以停止在address上监听;在您放下对listener的最后引用时,这不会自动完成,因为参考可能被内部持有。

自:2.22

参数

address

类型: GSocketAddress

一个GSocketAddress

数据由方法调用者拥有。
type

类型: GSocketType

一个GSocketType

protocol

类型: GSocketProtocol

一个GSocketProtocol

source_object

类型: GObject

一个可选的GObject,用于标识此源。

该参数可以为NULL
数据由方法调用者拥有。
effective_address

类型: GSocketAddress

存储已绑定地址的位置,或NULL

该参数将由函数设置。
该参数可以为NULL
方法的调用者将获取返回数据的所有权,并负责释放它。
error

类型: GError **

一个可恢复错误的返回位置。

该参数可以为NULL
如果返回位置不为NULL,则您必须将其初始化为一个NULLGError*
如果没有错误,该方法将始终将参数初始化为NULL
出错时,参数将设置为一个新的GError分配;调用者将获取数据的所有权,并负责释放它。

返回值

类型: gboolean

在成功时返回TRUE,在出错时返回FALSE