您的位置:首页 > 理论基础 > 计算机网络

28 GroupSock(NetAddress)——live555源码阅读(四)网络

2015-07-01 15:22 537 查看

28GroupSock(NetAddress)——live555源码阅读(四)网络

28GroupSock(NetAddress)——live555源码阅读(四)网络简介1)NetAddress网络地址类简述下面是其定义assign方法(分配空间)NetAddress的构造clean方法(清理)与析构operate=重载赋值操作本文由乌合之众lym瞎编,欢迎转载
blog.cnblogs.net/oloroso
本文由乌合之众lym瞎编,欢迎转载
my.oschina.net/oloroso

简介

使用Socket进行的网络连接,网络地址一般由地址(
IP
)和端口(
port
)组成。live555中定义了一些数据类型,表明了目前所支持的网络地址类型。
//Definitionofatyperepresentingalow-levelnetworkaddress.//Atpresent,thisis32-bits,forIPv4.Later,generalizeit,//toallowforIPv6.//一种代表底层网络地址定义。目前,默认它32位,IPv4。将来,可扩展支持IPv6。typedefu_int32_tnetAddressBits;typedefu_int16_tportNumBits;
定义在文件
live555sourcecontrol\groupsock\include\NetAddress.hh

1)NetAddress网络地址类简述

NetAddress
是一个用于保存网络地址的类,它不是对
structsockaddr
的封装。其内部定义了两个数据成员,分别是用于保存地址数据的
u_int8_t*fData
和用于指示地址长度的
unsignedfLength
//构造函数,为fDate申请length字节内存空间,并将data指向内容拷贝到新空间NetAddress::NetAddress(u_int8_tconst*data,unsignedlength){assign(data,length);}//为fDate申请length字节内存空间,并将新空间清零NetAddress::NetAddress(unsignedlength){fData=newu_int8_t[length];if(fData==NULL){fLength=0;return;}for(unsignedi=0;i<length;++i)fData[i]=0;fLength=length;}//拷贝构造NetAddress::NetAddress(NetAddressconst&orig){assign(orig.data(),orig.length());}
构造函数

clean方法(清理)与析构

clean
方法用于将
fData
指向的内存空间进行释放。就是将
NetAddress
对象保存的
数据给清理掉
了,注意这个方法是
private
权限。题外话:clean和clear的意思还是有一点区别的。
//清除地址数据voidNetAddress::clean(){delete[]fData;fData=NULL;fLength=0;}
析构就是对clean的调用。
//析构NetAddress::~NetAddress(){clean();}

operate=重载赋值操作

这个很简单,不详述了。
//重载=赋值NetAddress&NetAddress::operator=(NetAddressconst&rightSide){if(&rightSide!=this){clean();assign(rightSide.data(),rightSide.length());}return*this;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: