3.2.8 RTPTransmissionInfo
-----------------------------------------------------------------------头文件:rtptransmitter.h
类RTPTransmissionInfo是一个抽象基类,根据特定的传输组件有特定的(继承)实现。所有的具体实现都继承下面的函数,用来确定对这些参数来说哪个传输组件是有效的(【译注:就是说该函数是用来指出实际使用的传输组件类型的,原文:All actual implementations inherit the following function which identify the component type for which these parameters are valid】):
RTPTransmitter::TransmissionProtocol GetTransmissionProtocol()
关于基于IPv4的UDP传输器的信息
------------------------------------------------------------------------头文件:rtpudpv4transmitter.h
类RTPUDPv4TransmissionInfo给出了关于基于IPv4的UDP传输组件的更多信息,可用的成员函数如下:
std::list<uint32_t> GetLocalIPList() const
-----返回传输器可选择作为本机IP地址的IPv4地址列表。
int GetRTPSocket() const
-----返回用于收发RTP数据包的套接字描述子。
int GetRTCPSocket() const
-----返回用于收发RTCP数据包的套接字描述子。
关于基于IPv6的UDP传输器的信息
------------------------------------------------------------------------头文件:rtpudpv6transmitter.h
类RTPUDPv6TransmissionInfo给出了关于基于IPv6的UDP传输组件的更多信息,可用的成员函数如下:
std::list<in6_addr> GetLocalIPList() const
-----返回传输器可选择作为本机IP地址的IPv6地址列表。
int GetRTPSocket() const
-----返回用于收发RTP数据包的套接字描述子。
int GetRTCPSocket() const
-----返回用于收发RTCP数据包的套接字描述子。
3.2.9 RTPAddress
-------------------------------------------------------------------------头文件:rtpaddress.h
类RTPAddress是一个用来指出单播目的地址或者组播组的抽象基类。该类定义了下面的参数用来确定具体实现所使用的(地址类型)。
enum AddressType {IPv4Address, IPv6Address, UserDefinedAddress};
基于IPv4的UDP传输器使用类型RTPAddress::IPv4Address,基于IPv6的UDP传输器使用类型RTPAddress::IPv6Address。当使用用户自定义类型的传输组件时RTPAddress:: UserDefinedAddress会很有用。
类定义了以下接口:
AddressType GetAddressType() const
-----返回具体实现所代表的地址类型。
RTPAddress *CreateCopy() const
-----创建一个RTPAddress对象的拷贝。
bool IsSameAddress(const RTPAddress *addr) const
-----检查对象使用的地址是否与地址addr相同,具体实现需要能够处理参数为NULL的情况。
bool IsFromSamHost(const RTPAddress *addr) const
-----检查地址addr所代表的主机是否与对象是同一个,具体实现需要能够处理参数为NULL的情况。
RTPIPv4Address
------------------------------------------------------------------------头文件:rtpipv4address.h
该类在基于IPv4的UDP传输组件中使用,类定义了下面的函数。
RTPIPv4Address(uint32_t ip=0, uint16_t port=0)
-----创建一个IP地址为ip,端口号为port的对象,两个参数都是主机字节序表示。
RTPIPv4Address(const uint8_t ip[4], uint16_t port=0)
-----创建一个IP地址为ip,端口号为port的对象,两个参数都是主机字节序表示。
void SetIP(uint32_t ip)
-----将对象的IP地址设为ip,ip是用主机字节序表示。
void SetPort(uint16_t port)
-----将对象的端口号设为port,port是用主机字节序表示。
uint32_t GetIP() const
-----返回以主机字节序表示的对象IP地址。
Uint16_t GetPort() const
-----返回以主机字节序表示的对象端口号。
当RTPIPv4Address地址用于传输器的组播函数的任意一个时,端口号将被忽略。当该类的对象用于传输器的接受或者拒绝函数中的一个时,0号端口将代表指定IP地址的所有端口。
RTPIPv6Address
------------------------------------------------------------------------头文件:rtpipv6address.h
该类在基于IPv6的UDP传输组件中使用,类定义了下面的函数。
RTPIPv6Address()
-----创建一个IP地址和端口号都为0的对象。
RTPIPv6Address(const uint8_t ip[16], uint16_t port=0)
-----创建一个IP地址为ip,端口号为port的对象,两个参数都是主机字节序表示。
RTPIPv6Address(in6_addr ip, uint16_t port=0)
-----创建一个IP地址为ip,端口号为port的对象,两个参数都是主机字节序表示。
void SetIP(in6_addr ip)
-----将对象的IP地址设为ip。
void SetIP(const uint8_t ip[16])
-----将对象的IP地址设为ip。
void SetPort(uint16_t port)
-----将对象的端口号设为port,port是用主机字节序表示。
void GetIP(uint8_t ip[16]) const
-----拷贝对象IP地址到ip。
in6_addr GetIP() const
-----返回对象IP地址。
Uint16_t GetPort() const
-----返回以主机字节序表示的对象端口号。
当RTPIPv6Address地址用于传输器的组播函数的任意一个时,端口号将被忽略。当该类的对象用于传输器的接受或者拒绝函数中的一个时,0号端口将代表指定IP地址的所有端口。
【to be continued!】