自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

转载 Linux下如何得到本机所有IP地址及MAC地址

已知: gethost and gethostbyname,测试只能得到一个IP地址。 --------------------------------------------------------------- 原文:http://www.chinaunix.net/jh/23/161236.html ----------------------------------

2013-11-29 19:17:10 731

转载 开源的XML Parser expat的介绍和使用心得

以下内容是从我的人人主页直接复制来的:----------------------------------------------------------------------------------------------------------------expat是使用C所写的XML解释器,采用流的方式来解析XML文件,并且基于事件通知型来调用分析到的数据,并不需要把所有X

2013-11-29 17:29:50 802

转载 用expat解析包解析XML文件

要了解如何使用expat XML解析器之前,先来仔细地分析一下怎么样使用expat库的小例子,看看具体调用了那些接口函数,是否会很复杂的呢?‘它的例子程序如下:#001#013 #014  下面包括输出文件和库文件头。#015 #include #016 #include "xmlparse.h"#017  定义缓冲区的大小。#018 #define B

2013-11-29 17:28:23 905

转载 使用expat开发xml分析器

expat下载地址:http://sourceforge.net/projects/expat/互联网发得展很快,都是源自于使用了超文本的表达方式。比如你查看一篇文章,看到不懂的关键字,就可以通过链接去查看它的内容,看完之后再回来接着看原来的东西,这样比较适合学习的方式。使用HTML标记的文本,是结构化储存的,这样的表达方式才可以实现超级连接。由于HTML具有超强的表达能力,也就在互联网上

2013-11-29 17:27:24 1214

转载 man c++手册

使用Linux下man已经很久了。但只是大概知道其内容的存放目录,以及man number xxx中mumber的含义。今天需要添加C++ man page。顺便将man的内容作一个较详细的了解。 0. man后面数字的含义:之前Sam在查找C库函数时,会使用#man 3 func在查找系统调用时,则使用#man 2 fork.否则有时会出现查到同名的she

2013-11-27 10:15:06 774

转载 C++的XML编程经验――LIBXML2库使用指南

写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML库,而且它同时支持多种编程语言;2)LIBXML2库的Tutorial写得不太好,尤其是编码转换的部分,不适用于中文编码的转换;3)网上的大多数关于Libxml2的介绍仅仅是翻译了自带的资料,没有详细介绍如何在windows平台下进行编程,更很少提到如

2013-11-25 16:19:39 584

转载 libxml2 安装使用

Gnome项目提供了一个xml的C解析器:Libxml2。libxml2最新提供了xmlreader接口,使用很方便,不过版本在2.6以上才支持。今天倒腾了一了下,做了下简单测试,在编译自己的小程序上被拌了一下,写文纪念。  现在的最新版本是2.6.30,可以到http://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/ 下载。  安装很简

2013-11-25 16:17:36 984

转载 结构体中Char a[0]用法——柔性数组

有如下定义:typedef struct{ char a; char b[0]; }; 其中元素Char b[0];叫做柔性数组,主要用于使结构体包含可变长字段。详细内容如下:柔性数组; 【柔性数组结构成员   C99中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其他成员。柔性数组成员允许结构中包含一个大小

2013-11-25 13:06:46 810

转载 C++迭代器 iterator

1. 迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型。(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector::iterator iter;这条语句定义了一个名为iter的变量,它的数据类型是由vector定义的iterator类型。(2) 使用迭代器读取vector中的每一个元素:vector ivec(10,1);for(vector

2013-11-20 13:56:21 889

转载 [转]解析XMPP协议分析与应用

XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程 序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。XMPP(可扩展消息处理现场协

2013-11-14 15:09:30 984

转载 libjingle源码解析(6)-【PseudoTcp】建立UDP之上的TCP(4):超时与重传

超时与重传    TCP是面向连接的可靠的运输层。当数据丢失时,TCP需要重传包。TCP通过设置定时器解决这种问题。    对每个连接,TCP有4个不同的定时器:        1)重传定时器:用于当希望收到另一端的确认,而没有收到时。        2)坚持定时器:使窗口大小信息保持不断流动。        3)保活定时器:可检测空闲连接另一端何时

2013-11-14 15:08:04 1254

转载 libjingle源码解析(5)-【PseudoTcp】建立UDP之上的TCP(3):对成块数据流的处理

PseudoTcp对成块数据流的处理上一篇谈论了TCP和PTCP对交互数据流的处理方法。这一篇谈论另一个数据流--成块数据流。成块数据流主要采用滑动窗口协议和慢启动算法来控制成块数据的流量。滑动窗口    滑动窗口允许发送方在停止并等待确认前可以连续发送多个分组。因此发送方不必每发一个就停下来等待,这样可以加速数据的传输。这个Nagle算法冲突么?不会,因为

2013-11-14 15:07:26 996

转载 libjingle源码解析(4)-【PseudoTcp】建立UDP之上的TCP(2):对交互数据流的处理

对交互数据流的处理TCP包含两类数据流,交互数据流和成块数据流。交互数据流的特点是每个报文数据字节数比较小,大部分是10字节一下,而成块数据流的特点是大部分报文是满长度的,一般能达到MSS。本文先介绍一些TCP和PTCP对交互数据流的处理。交互式输入    Rlogin是典型的交互数据流应用,每一按键都会产生数据分组,使客户端传输一个报文,接

2013-11-14 15:06:43 907

转载 libjingle源码解析(3)-【PseudoTcp】建立UDP之上的TCP(1):连接和关闭

PseudoTcp - 建立UDP之上的TCP(1):连接和关闭mail:lihe21327 [at] gmail [dot] com最近阅读了Libjingle的PseudoTcp.LibJingle很是下功夫做P2P了,在UDP之上做了可靠的传输协议PseudoTcp.了解PseudoTcp之前,我们需要了解一些TCP的特性。根据《TCP/IP详解》

2013-11-14 15:05:21 1131

转载 libjingle源码解析(2)--libjingle是怎么运作的?

本文主要总结至libjingle源码和官方文章:http://code.google.com/apis/talk/libjingle/libjingle_applications.htmlligjingle的总体架构如下图:1.Application模块Ligjingle的应用程序首先调用XMPP Messaging Component的XmppCl

2013-11-14 15:04:14 1045

转载 libjingle源码分析之一:Thread和SocketServer

分类:libjingle 2012-10-25 20:10249人阅读评论(0)收藏举报·  摘要      本文主要分析了libjingle源码中的Thread和SocketServer模块,以及它们是如何协同工作的。首先,介绍了Thread和SocketServer的模型,给出了如何使用Thread的示例。然后,分析了Thread中的默认消息循环的处理流程和如何自己

2013-11-12 10:23:47 986

转载 Sigslot介绍

1.          简介      sigslot是一个线程安全、类型安全,用C++实现的sig/slot机制(sig/slot机制就是对象之间发送和接收消息的机制)的开源代码库。是一个非常好用的库,只有一个头文件sigslot.h。2.    Sigslot实例      现代的C++项目通常包含大量的C++类和对象,对象之间通过成员函数调用,缺点是当类和对象规模很大

2013-11-12 09:19:57 568

转载 关键字explicit修饰构造函数

按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”

2013-11-08 11:04:23 617

转载 关于select函数中struct timeval问题

如果select调用中设置了等待时间,那么每次调用时都需要重新对这个时间赋值么?就像对fd_set处理一样。 例如: fd_set readfd; struct timval tv; while(1) {   FD_ZERO(&readfd);   FD_SET(fd, &readfd);   tv.tv_sec = 2;   tv.tv_usec = 0;  

2013-11-05 16:42:19 3935

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除