- 博客(14)
- 收藏
- 关注
原创 使用libxml读取分析配置文件
配置文件示例如下: 7 192.168.2.213 5730 192.168.2.230 9003 首先定义存储信息的结构体:typedef struct _partition { char ip[STRING_SIZE_MAX]; int port;} partition_
2015-11-02 19:59:54
486
原创 c语言宏定义中的#、##应用实例
#:用于字符串化,#后面的参数被转成一个字符串##:用于字符串的分割连接举例:首先定义一个字符串及其长度的结构体:typedef struct AVal{ char *av_val; int av_len;} AVal;宏定义一个该类型的字符串结构:#define AVC(str) {str,sizeof(str)-1}#define SAVC(x) s
2015-11-02 18:33:57
708
原创 linux获取局域网、公网IP地址以及主机名
int IsLANIP(unsigned int nIP){ // filter LAN IP's // ------------------------------------------- // 0.* // 10.0.0.0 - 10.255.255.255 class A // 172.16.0.0 - 172.31.255.255 class
2015-10-23 19:52:13
3343
原创 Ubuntu11.04安装、配置samba
安装:#sudo apt-get install samba#sudo apt-get install smbclient启动:sudo service smbd restart配置:/etc/samba/smb.conf 文件尾部追加path = /home/xxxx/samba writeable = yes; br
2015-08-24 14:39:46
321
转载 IO阻塞、非阻塞、同步、异步理解
http://blog.youkuaiyun.com/historyasamirror/article/details/5778378http://www.zhihu.com/question/19732473IO分5种:blocking IO、nonblocking IO、IO multiplexing、signal driven IO(少用)、asynchronous IO阻塞判断标准
2015-07-21 16:03:46
412
原创 linux下使用Jsoncpp
linux下使用Jsoncpp源码与项目代码一起编译时,会出现很多报错,诸如:error: missing binary operator before token "("/usr/include/wchar.h:104:1: error: ‘__BEGIN_NAMESPACE_C99’ does not name a type/usr/include/wchar.h:107:1:
2015-07-11 09:32:23
1551
1
转载 动态链接库与静态链接库
概念动态链接:lib文件一般是一些索引信息,记录了函数在DLL文件中的入口信息;dll文件在运行时加载到进程空间中,包含了要执行的代码逻辑,因此可知动态库中的被引用函数不会包含在可执行文件中,所以应用程序最后发布时,需要exe与dll文件一起发布。静态链接:lib包含了函数代码(实际是各种cpp编译生成的obj的集合),在编译阶段直接将代码加入程序中;链接器从lib中获取所有的被引用函数,
2015-05-21 16:21:01
407
转载 ICE-RFC5245摘要
ICE:Interactive Connectivity Establishment参考链接:http://tools.ietf.org/html/rfc5245简介 ICE技术使用请求/应答模型的信令协议建立交互式连接,方便基于UDP的媒体流的NAT穿透。它也整合了STUN和TURN协议的内容,形成了完整的穿透NAT的解决方案,相对于其他解决方案,如ALGs(应用层网关)、
2015-04-21 16:17:36
811
转载 TURN概述.
TURN:Traversal Using Relays around NAT主要参考链接:http://www.rfc-editor.org/rfc/rfc5766.txt(RFC5766)和http://www.cnblogs.com/ishangs/p/3816689.html(思路很清晰)应用场景 STUN协议可以使内网主机获取到STUN Server看到的反射地址
2015-04-21 13:57:53
664
转载 UDP Hole punching 概述
基本思想 利用一个任何客户端都可达的服务器,在服务器上预先存储、维护客户端的UDP公用端点地址,当双方需要通信时,通过服务器的介绍获取对方的端点地址,建立直接的连接(两个客户端公网地址之间的直连)。基本流程 假设有两个位于私网中的客户端C1和C2(可能位于同一私网),都可访问同一Server,那么流程如下: 一、C1向服务器发出请求,要求与
2015-04-20 16:49:33
1065
转载 STUN--RFC5389摘要
STUN:Session Traversal Utilities for NAT1、概述 RFC3489的劣势:一、NAT穿透有时会失败,但没有失败补救措施;二、NAT分类算法不适用于现代的很多NAT类型;三、安全弱点。 与RFC3489不同,该文档不再把STUN描述为解决NAT穿透的完整解决方案,而是将STUN作为一种工具集成到其他更完备的解决方案中去,例如本协议
2015-04-18 16:19:28
3907
转载 STUN--RFC3489摘要
1、适用性:不允许向内穿过NAT的TCP连接请求,不允许向内穿过对称NAT的连接请求(UDP也不行),位于同一个NAT后面的通讯端点的地址也不能通过STUN获取。STUN不需要修改NAT,并可工作在应用实体和因特网前后间有任意数量的NAT的情况下。2、基本原理:用UDP简单穿过NAT(STUN),允许NAT后的实体首先发现NAT的存在和其类型,接着知道NAT分配的地址捆绑。用
2015-04-15 18:13:51
1647
1
原创 MFC中的字符类型转换
工程用Unicode编码MFC调用底层接口,底层需要传入char*,要将Cstring转成char*: Cstring tmpStr; USES_CONVERSION; char* needstr = T2A(tmpStr);char* 转成Cstring,直接转就行: char* tmpStr; Cstring needstr(tmpStr);常
2015-04-02 14:14:01
433
转载 模板的特化与偏特化
模板的特化(模板参数列表指定特定类型)首先定义一个模板:templateclass test{//泛化实现代码}然后特化模板:template//尖括号中不带任何类型,也即原模板中的参数列表都将被特化class test//A、B用Cat,Dog特化{//特化实现代码}在以后使用test时,若为 test则表示执行特化实现的代码,若传入其
2015-03-25 18:09:04
410
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人