public NetAddress(Instance instance, ushort port, byte[] address = null) { if (address == null || address.Length <= PPNetAddressIPv4.IPv4AddressBytes) { var ipAddress = new PPNetAddressIPv4(port, address); handle = PPBNetAddress.CreateFromIPv4Address(instance, ipAddress); } else { var ipAddress = new PPNetAddressIPv6(port, address); handle = PPBNetAddress.CreateFromIPv6Address(instance, ipAddress); } }
extern static PPResource _CreateFromIPv4Address( PPInstance instance, PPNetAddressIPv4 ipv4_addr);
extern static PPBool _DescribeAsIPv4Address( PPResource addr, out PPNetAddressIPv4 ipv4_addr);
/** * Fills a <code>PP_NetAddress_IPv4</code> structure if the network address is * of <code>PP_NETADDRESS_FAMILY_IPV4</code> address family. * Note that passing a network address of * <code>PP_NETADDRESS_FAMILY_IPV6</code> address family will fail even if the * address is an IPv4-mapped IPv6 address. * * @param[in] addr A <code>PP_Resource</code> corresponding to a network * address. * @param[out] ipv4_addr A <code>PP_NetAddress_IPv4</code> structure to store * the result. * * @return A <code>PP_Bool</code> value indicating whether the operation * succeeded. */ public static PPBool DescribeAsIPv4Address(PPResource addr, out PPNetAddressIPv4 ipv4_addr) { return(_DescribeAsIPv4Address(addr, out ipv4_addr)); }
/** * Creates a <code>PPB_NetAddress</code> resource with the specified IPv4 * address. * * @param[in] instance A <code>PP_Instance</code> identifying one instance of * a module. * @param[in] ipv4_addr An IPv4 address. * * @return A <code>PP_Resource</code> representing the same address as * <code>ipv4_addr</code> or 0 on failure. */ public static PPResource CreateFromIPv4Address( PPInstance instance, PPNetAddressIPv4 ipv4_addr) { return(_CreateFromIPv4Address(instance, ipv4_addr)); }