PR_InitializeNetAddr

初始化或重新初始化网络地址。网络地址结构的存储空间由调用方分配,并由调用方负责。

语法

#include <prnetdb.h>

PRStatus PR_InitializeNetAddr(
  PRNetAddrValue val,
  PRUint16 port,
  PRNetAddr *addr);

参数

该函数具有以下参数

val

要分配给网络地址的 IP 地址部分的值。此值必须是 PR_IpAddrNullPR_IpAddrAnyPR_IpAddrLoopback

port

要分配给网络地址结构中的端口号。该值以主机字节序指定。

addr

指向要操作的 PRNetAddr 结构的指针。

返回值

该函数返回以下值之一

  • 如果成功,则返回 PR_SUCCESS

  • 如果失败,则返回 PR_FAILURE。例如,如果 val 的值不在 PRNetAddrValue 定义的范围内,则可能会发生这种情况。可以通过调用 PR_GetError 来检索失败的原因。

描述

PR_InitializeNetAddr 允许分配特殊的网络地址值和端口号,同时还设置指示正在使用的地址版本的 state。

特殊的网络地址值由枚举 PRNetAddrValue 标识

typedef enum PRNetAddrValue{
  PR_IpAddrNull,
  PR_IpAddrAny,
  PR_IpAddrLoopback
} PRNetAddrValue;

该枚举具有以下枚举器

PR_IpAddrNull

不要覆盖 IP 地址。这允许调用方更改网络地址的端口号分配,而不影响主机地址。

PR_IpAddrAny

将逻辑 PR_INADDR_ANY 分配给 IP 地址。此通配符值通常用于在要侦听传入连接请求的套接字上建立连接。

PR_IpAddrLoopback

分配逻辑 PR_INADDR_LOOPBACK。客户端可以使用此值连接到自身,而无需知道主机的网络地址。