28 GroupSock(NetAddress)——live555源码阅读(四)网络
2015-07-01 15:22
537 查看
28GroupSock(NetAddress)——live555源码阅读(四)网络
blog.cnblogs.net/oloroso
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;}
相关文章推荐
- TCP和UDP
- 27 GroupSock概述(一)——live555源码阅读(四)网络
- windows下的socket网络编程
- HttpClient之初步认识与使用1
- Easy Basic HTTP authentication with Tornado
- CentOS 配置网络环境
- 安装 PHP 5.4 成功 https://webtatic.com/packages/php54/
- TCP连接建立过程中为什么需要“三次握手”
- angularjs 信息链接 转摘自:http://www.zhihu.com/question/27427447
- RTP-RTCP-RTSP协议的区别与联系
- 网络故障诊断之法
- 负载均衡器&http正向代理
- 在AIX上运行RAC时网络方面的一些最佳经验
- 开源-负载均衡&http正向代理器
- TCP header
- 谷歌Volley网络框架讲解——第一篇
- 谷歌Volley网络框架讲解——Network及其实现类
- VMware、RHEL的网络配置
- 谷歌Volley网络框架讲解——网络枢纽
- linux网络:常用命令(一)