NL::互联网
概括
类型定义 | |
---|---|
InterfaceId | 类型定义struct netif * 系统网络接口的指示器。 |
变量 | |
---|---|
sIOCTLSocket = -1 | int |
职能 | |
---|---|
CheckMulticastGroupArgs (InterfaceId aInterfaceId, const IPAddress & aAddress) | |
CloseIOCTLSocket (void) | void 附近创建了全球插座 GetIOCTLSocket 。 |
FormatInetLayerError (char *buf, uint16_t bufSize, int32_t err) | bool 给定 Inet 层错误,返回一个人类可读的以 NULL 结尾的 C 字符串来描述错误。 |
GetIOCTLSocket (void) | int 返回用于调用某些网络 IOCTL 的全局通用套接字。 |
GetInterfaceName (InterfaceId intfId, char *nameBuf, size_t nameBufSize) | NL_DLL_EXPORT INET_ERROR 获取网络接口的名称。 |
INET_IsInetEvent (Weave::System::EventType aType) | bool 检查以验证 System::EventType 是否为有效的 Inet 层事件类型。 |
InterfaceNameToId (const char *intfName, InterfaceId & intfId) | NL_DLL_EXPORT INET_ERROR 在网络接口列表中搜索指定名称。 |
LwIPBindInterface (struct raw_pcb *aRaw, InterfaceId intfId) | |
LwIPBindInterface (struct udp_pcb *aUDP, InterfaceId intfId) | |
NetmaskToPrefixLength (const uint8_t *netmask, uint16_t netmaskLen) | uint8_t 从可变长度的网络掩码计算前缀长度。 |
ParseHostAndPort (const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort) | 解析包含主机或 IP 地址和可选端口号(以“:”分隔)的可读字符串,支持以下格式: |
ParseHostPortAndInterface (const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort, const char *& aInterface, uint16_t & aInterfaceLen) | 解析包含主机或 IP 地址、可选端口号(以 ':' 分隔)和可选接口名称(以 '' 分隔)的可读字符串,支持以下格式: |
RegisterInetLayerErrorFormatter (void) | void 为 Inet 层错误注册文本错误格式化程序。 |
SocketsIPv4JoinLeaveMulticastGroup (int aSocket, InterfaceId aInterfaceId, const IPAddress & aAddress, int aCommand) | |
SocketsIPv6JoinLeaveMulticastGroup (int aSocket, InterfaceId aInterfaceId, const IPAddress & aAddress, int aCommand) | |
SocketsSetMulticastLoopback (int aSocket, bool aLoopback, int aProtocol, int aOption) | |
SocketsSetMulticastLoopback (int aSocket, IPVersion aIPVersion, bool aLoopback) |
班级 | |
---|---|
NL :: Inet电子:: AsyncDNSResolverSockets | |
NL :: Inet电子::使用DNSResolver | |
NL :: Inet电子:: EndPointBasis | 互联网传输端点类的基础。 |
NL :: Inet电子:: ip地址 | 互联网协议地址。 |
NL :: Inet电子:: IPEndPointBasis | 此类的对象表示不可实例化的 IP 协议端点。 |
NL :: Inet电子:: IPPacketInfo | 有关传入/传出消息/连接的信息。 |
NL :: Inet电子:: IPPrefix | Internet 协议地址前缀。 |
NL :: Inet电子:: InetLayer | 这为单个线程提供了对 Internet 服务的访问,包括计时器、域名系统 (DNS) 解析、TCP 网络传输、UDP 网络传输和原始网络传输。 |
NL :: Inet电子:: InetLayerBasis | 这是基础类由一个管理引用计数对象InetLayer对象。 |
NL :: Inet电子:: InterfaceAddressIterator | 系统网络接口 IP 地址列表的迭代器。 |
NL :: Inet电子:: InterfaceIterator | 系统网络接口列表的迭代器。 |
NL :: Inet电子:: RawEndPoint | 此类的对象表示原始 IP 网络端点。 |
NL :: Inet电子:: SocketEvents | 表示套接字上请求/挂起的一组 I/O 事件。 |
NL :: Inet电子:: TCPEndPoint | 此类的对象表示 TCP 传输端点。 |
NL :: Inet电子:: TunEndPoint | 此类的对象表示隧道接口。 |
NL :: Inet电子:: UDPEndPoint | 此类的对象表示 UDP 传输端点。 |
工会 | |
---|---|
NL :: Inet电子:: PeerSockAddr |
命名空间 | |
---|---|
NL :: Inet电子::平台 |
枚举
@7
@7
Inet 层事件类型定义。
特性 | |
---|---|
kInetEvent_DNSResolveComplete | DNS 名称解析完成事件。 |
kInetEvent_RawDataReceived | 通过一个用于数据接收的情况下InetLayer原始端点。 |
kInetEvent_TCPConnectComplete | TCP 连接完成事件。 |
kInetEvent_TCPConnectionReceived | TCP 连接接收事件。 |
kInetEvent_TCPDataReceived | 通过 TCP 连接接收数据的事件。 |
kInetEvent_TCPDataSent | 通过 TCP 连接进行数据传输的事件。 |
kInetEvent_TCPError | TCP 连接上的错误事件。 |
kInetEvent_TunDataReceived | 通过 Weave 隧道接收数据的事件。 |
kInetEvent_UDPDataReceived | 通过 UDP 接收数据的事件。 |
DNS选项
DNSOptions
控制如何执行 IP 地址解析的选项。
IP地址类型
IPAddressType
Internet 协议地址族。
该值IPAddressType
类型被返回的IPAddress::Type()
方法。它们指示使用地址所需要的地址族。
特性 | |
---|---|
kIPAddressType_Any | 未指定的互联网地址(独立于协议版本) |
kIPAddressType_IPv4 | 互联网协议版本 4。 |
kIPAddressType_IPv6 | 互联网协议版本 6. |
kIPAddressType_Unknown | 不曾用过。 |
IPV6组播组
IPV6MulticastGroup
Internet 协议多播组标识符。
所述的值IPV6MulticastGroup
类型被用来调用IPAddress::MakeIPv6Multicast()
方法。它们表示 IETF 向 IANA 注册的可分辨组标识符。
特性 | |
---|---|
kIPV6MulticastGroup_AllRouters | RFC 4291。 |
IPv6多播标志
IPv6MulticastFlag
Internet 协议 v6 多播标志。
所述的值IPv6MulticastFlag
类型被用来调用IPAddress::MakeIPv6Multicast()
方法。它们指示要创建的 IPv6 多播地址的类型。这些号码由 IETF 向 IANA 注册。
特性 | |
---|---|
kIPv6MulticastFlag_Prefix | 多播地址是 (1) 基于网络前缀。 |
kIPv6MulticastFlag_Transient | 多播地址是 (1) 临时的(即动态分配的)而不是 (0) 众所周知的(即 IANA 分配的)。 |
IPv6多播范围
IPv6MulticastScope
Internet 协议多播地址范围。
所述的值IPv6MulticastScope
类型被用来调用IPAddress::MakeIPv6Multicast()
方法。它们指示结果指定的多播组的可路由范围。这些号码由 IETF 向 IANA 注册。
类型定义
接口标识
struct netif * InterfaceId
系统网络接口的指示器。
可移植性取决于永远不会看到这个别名。将来它可能会被具体的不透明类取代。
请注意:术语“接口标识符”通常也指所有相关 IETF 标准文档中 IPv6 地址的低 64 位,其中经常使用缩写“IID”。在本文中,术语“接口指示符”指的是这种类型别名的值。
变量
sIOCTLSocket
int sIOCTLSocket = -1
职能
检查多播组参数
INET_ERROR CheckMulticastGroupArgs( InterfaceId aInterfaceId, const IPAddress & aAddress )
关闭IOCTLSocket
void CloseIOCTLSocket( void )
附近创建了全球插座GetIOCTLSocket
。
此函数是为在将全局 IOCTL 套接字打开时注册为泄漏的情况提供的。
注:此功能是不是线程安全的,相对于GetIOCTLSocket
。
格式Inet层错误
bool FormatInetLayerError( char *buf, uint16_t bufSize, int32_t err )
给定 Inet 层错误,返回一个人类可读的以 NULL 结尾的 C 字符串来描述错误。
细节 | |||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
退货 | 如果将描述字符串写入提供的缓冲区,则为 true。 | ||||||
退货 | false 如果提供的错误不是 Inet 层错误。 |
获取IOCTLSocket
int GetIOCTLSocket( void )
返回用于调用某些网络 IOCTL 的全局通用套接字。
此函数在所有平台上都是线程安全的。
获取接口名称
NL_DLL_EXPORT INET_ERROR GetInterfaceName( InterfaceId intfId, char *nameBuf, size_t nameBufSize )
获取网络接口的名称。
Writes the name of the network interface as \c NUL terminated text string at \c nameBuf. The name of the unspecified network interface is the empty string.
细节 | |||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
返回值 |
|
INET_IsInetEvent
bool INET_IsInetEvent( Weave::System::EventType aType )
检查以验证 System::EventType 是否为有效的 Inet 层事件类型。
细节 | |||
---|---|---|---|
参数 |
| ||
退货 | 如果它落在枚举范围内,则为真;否则为假。 |
接口名称ToId
NL_DLL_EXPORT INET_ERROR InterfaceNameToId( const char *intfName, InterfaceId & intfId )
在网络接口列表中搜索指定名称。
On LwIP, this function must be called with the LwIP stack lock acquired. The \c intfId parameter is not updated unless the value returned is \c INET_NO_ERROR. It should be initialized with \c INET_NULL_INTERFACEID before calling this function.
细节 | |||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
返回值 |
|
LwIP绑定接口
INET_ERROR LwIPBindInterface( struct raw_pcb *aRaw, InterfaceId intfId )
LwIP绑定接口
INET_ERROR LwIPBindInterface( struct udp_pcb *aUDP, InterfaceId intfId )
网络掩码到前缀长度
uint8_t NetmaskToPrefixLength( const uint8_t *netmask, uint16_t netmaskLen )
从可变长度的网络掩码计算前缀长度。
解析主机和端口
INET_ERROR ParseHostAndPort( const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort )
解析包含主机或 IP 地址和可选端口号(以“:”分隔)的人类可读字符串,支持以下格式:
: : - [
]:
细节 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
| ||||||||||
退货 | INET_ERROR_INVALID_HOST_NAME如果要被解析的输入是零长度的或不正常的的。 | ||||||||||
退货 | INET_ERROR_HOST_NAME_TOO_LONG如果主机名超过253个字符。 | ||||||||||
退货 | INET_NO_ERROR上的成功。 |
解析主机端口和接口
INET_ERROR ParseHostPortAndInterface( const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort, const char *& aInterface, uint16_t & aInterfaceLen )
解析包含主机或 IP 地址、可选端口号(以 ':' 分隔)和可选接口名称(以 '' 分隔)的可读字符串,支持以下格式:
% : : % % : : % % - [
]: - [
]: %
细节 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
| ||||||||||||||
退货 | INET_ERROR_INVALID_HOST_NAME如果要被解析的输入是零长度的或不正常的的。 | ||||||||||||||
退货 | INET_ERROR_HOST_NAME_TOO_LONG如果主机名超过253个字符。 | ||||||||||||||
退货 | INET_NO_ERROR上的成功。 |
注册InetLayerErrorFormatter
void RegisterInetLayerErrorFormatter( void )
为 Inet 层错误注册文本错误格式化程序。
套接字IPv4JoinLeaveMulticastGroup
INET_ERROR SocketsIPv4JoinLeaveMulticastGroup( int aSocket, InterfaceId aInterfaceId, const IPAddress & aAddress, int aCommand )
套接字IPv6JoinLeaveMulticastGroup
INET_ERROR SocketsIPv6JoinLeaveMulticastGroup( int aSocket, InterfaceId aInterfaceId, const IPAddress & aAddress, int aCommand )
SocketsSetMulticastLoopback
INET_ERROR SocketsSetMulticastLoopback( int aSocket, bool aLoopback, int aProtocol, int aOption )
SocketsSetMulticastLoopback
INET_ERROR SocketsSetMulticastLoopback( int aSocket, IPVersion aIPVersion, bool aLoopback )