博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页

2011年7月13日

摘要: SCTP处于SCTP用户应用层与IP网络层之间,它运用“关联”(association)这个术语定义交换信息的两个对等SCTP用户间的协议状态 。SCTP也是面向连接的,但在概念上,SCTP“关联”比TCP连接更为广泛:TCP的连接只有一个源地址和一个目的地址,SCTP提供一种方式使得每 个SCTP端点能为另一个对等端点提供一组传输地址,即传输地址= 一组IP地址+端口号。 在继承TCP特点的基础上,SCTP提供了一些额外的功能: 1. 在多个“流”(stream)中实现用户数据的有序发送 “流” 在TCP中指一系列的字节,而在SCTP中是指发送到上层协议的一定系列的用户消息,这些消息的顺序与 阅读全文

posted @ 2011-07-13 21:26 李大嘴 阅读(14724) 评论(2) 推荐(0) 编辑

2011年7月12日

摘要: 注:主动、被动 与 服务器、客户端没有明确的对应关系。这个图N多人都知道,它排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻的认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解析一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及关闭连接的四次握手过程。1、建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。 (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端 阅读全文

posted @ 2011-07-12 11:47 李大嘴 阅读(62031) 评论(2) 推荐(8) 编辑

2011年7月8日

摘要: 条款41: 了解隐式接口和编译期多态对template参数而言,接口是隐式的implicit,奠基于有效表达式。多态则是通过template具现化和函数重载解析(function overloading resolution)发生于编译器。template<typename T>void doProcessing(T& w) {if (w.size() > 10 && w != someNastyWidget) {T temp(w);temp.normalize();temp.swap(w);}}//w要支持的接口由template中执行于w身上的操作 阅读全文

posted @ 2011-07-08 21:28 李大嘴 阅读(509) 评论(0) 推荐(0) 编辑

摘要: 条款26: 尽可能延后变量定义式的出现时间01 //方案A和B哪个比较好?02 //方案A03 Widget w;04 for (int i = 0; i < n; ++i) {05 w=...;06 }07 08 //方案B09 for (int i = 0; i < n; ++i) {10 Widget w(...);11 }方案A:1次构造,1次析构,n次赋值方案B:n次构造,n次析构除非你知道(1)赋值成本小于构造+析构 (2)你正在处理代码中效率高度敏感的部分否则应该选择方案B条款27:尽量少做转型动作01 (T)expression //C风格02 T(expressi 阅读全文

posted @ 2011-07-08 20:55 李大嘴 阅读(423) 评论(0) 推荐(0) 编辑

摘要: 条款13: 以对象管理资源1.为防止资源泄漏,使用RAII对象,它们在构造函数中获得资源, 在析构函数中释放资源2.两个常用的RAII classes: tr1::shared_ptr和auto_ptr,后者复制会使被复制物指向nullRAII (Resource Acquisition is Initialization): 资源取得时机便是初始化时机------以对象管理资源。auto_ptr:不能让多个auto_ptr指向相同对象,否则对象会删除多次,未定义。 因此,若通过copy构造函数或copy assignment操作符复制它们,它们会变成Null, 而复制所得的指针将取得资源的唯 阅读全文

posted @ 2011-07-08 18:02 李大嘴 阅读(390) 评论(0) 推荐(0) 编辑

摘要: 条款01:视C++为一个语言联邦 : C, Object-Oriented C++, Template C++, STL条款02:尽量以const,enum,inline 替换#define:1.对于单纯常量,最好以const对象或enum替换#define2.对于形似函数的宏(macros),最好改用inline函数替换#define#define ASPECT_RATIO 1.653const double AspectRatio = 1.653; 1)用#define定义的名字可能没有进入记号表,编译出错,不方便追踪 2)用const定义常量将得到更精简的目标代码(object code 阅读全文

posted @ 2011-07-08 17:37 李大嘴 阅读(461) 评论(0) 推荐(0) 编辑

摘要: 笔者觉得这3个new有点意思,有时候我也被搞懵了,这些创造者难不成觉得C++过于简单,所以搞一点含糊的术语出来。这次总结一下,以便再懵的时候有个参考。有错的地方请不吝赐教,多谢先!简单点吧:1. new operator,即熟悉的new操作符,用它从堆中分配一个对象,并且初始化。CHeapObject* p=new CHeapObject(name);既然是操作符,那么它的行为就和其他+-*/操作符一样,是由C++语言定义的,不能改变,即使通过重载的方式也不能改变。C++规定了new操作符的行为:分配一个合适的空间容纳CHeapObject对象,然后调用其构造函数初始化对象。2. operat 阅读全文

posted @ 2011-07-08 10:36 李大嘴 阅读(221) 评论(0) 推荐(0) 编辑

2011年7月7日

摘要: nothrow是在C++标准头文件<new>中定义的一个nothrow_t类的对象。nothrow_t类是这样定义的: struct nothrow_t { }; 可见它只是一个什么都不做的空类。new仅仅使用这个空类对象达到一种标识作用,而不是利用这个类对象的功能。通常称这样的类对象为占位符。 C++标准规定 new 在分配内存失败的时候会抛出异常,因此在C++程序中应该通过捕捉异常来处理内存失败的情况。与之不同,传统的C语言中的malloc()函数分配内存失败时返回NULL指针。为了提供与malloc()函数一致的行为,即在内存分配失败时返回一个NULL指针,而不是抛出异常,C 阅读全文

posted @ 2011-07-07 22:16 李大嘴 阅读(652) 评论(0) 推荐(0) 编辑

2011年7月4日

摘要: 1. GCC对TR1库的支持状况你可以到GCC对TR1的支持状态查看最新状态。目前,GCC对TR1库的支持均实现在单独的文件中,并都统一放在tr1子目录下,例如shared_ptr就位于头文件<tr1/momery>中。目前,GCC 4.3已经支持的TR1库有元组(tuple)、智能指针(shared_ptr、weak_ptr)、数组容器(array)、无序容器(unordered_set、unordered_multiset、unordered_map、unordered_multimap)、类型特性(type_traits)、调用包装与函数对象(mem_fn、reference 阅读全文

posted @ 2011-07-04 17:26 李大嘴 阅读(3372) 评论(0) 推荐(1) 编辑

摘要: 在C++的TR1中(Technology Report)中包含一个function模板类和bind模板函数,使用它们可以实现类似函数指针的功能,但却却比函数指针更加灵活,特别是函数指向类的非静态成员函数时。可以参考Scott Meyers. <<Effective C++ (3rd Edition)>>. Item 35.下面具体说明其使用方法。一、指向全局函数或静态成员函数时因为在本质上讲全局函数和静态成员函数没有区别,使用方法上除了静态成员函数在引用时要在前面加域作用符className::外,没有其它任何区别,事实上全局函数也有可能放入命名空间,或者使用全局域作用 阅读全文

posted @ 2011-07-04 17:16 李大嘴 阅读(16145) 评论(0) 推荐(2) 编辑

上一页 1 2 3 4 5 6 7 8 ··· 10 下一页