- 博客(210)
- 资源 (16)
- 收藏
- 关注

原创 epoll模型实例
select/epoll的特点select的特点:select 选择句柄的时候,是遍历所有句柄,也就是说句柄有事件响应时,select需要遍历所有句柄才能获取到哪些句柄有事件通知,因此效率是非常低。但是如果连接很少的情况下, select和epoll的LT触发模式相比, 性能上差别不大。这 里要多说一句,select支持的句柄数是有限制的, 同时只支持1024个,这个是句柄集合限制的,如果
2013-04-02 22:07:22
1678

原创 C++ 实现线程池的精典模型
什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。下面列出线程的一些重要的函数int pthread_create(pthread_t *thread, const pthread_at
2013-02-24 18:27:57
3501

原创 C++ 实现线程池的精典模型
内容做了部分修改,更新内容为: http://blog.youkuaiyun.com/rao_warrior/article/details/8607228
2013-01-03 12:57:25
966

原创 从源码来看auto_ptr的特性
大家都知道,C++的auto_ptr auto_ptr所做的事情,就是动态分配对象以及当对象不再需要时自动执行清理。然而对于auto_ptr来说,它的规则也挺难记,有时候,我也在想,为什么会有这些规则呢,1) 两个auto_ptr不能同时拥有同一个对象2) 我们不应该用auto_ptr来管理一个数组指针。3) auto_ptr赋值运算,应该叫传值,传给别人,自己没有了。4) aut
2012-12-14 14:55:20
3372
1

原创 设计模式 之 STATE(状态)实例 —对象行为型模式
本文是对于 《设计模式 可复用面向对象软件的基础 Erich Gamma、Richard Helm》一书中的状态模型例子进行实现,并做了一些说明引目: 考虑一个表示网络连接的类T C P C o n n e c t i o n。一个T C P C o n n e c t i o n对象的状态处于若干不同状态之一: 连接已建立( E s t a b l i s
2012-12-06 19:33:39
5167

原创 unix网络编程——ioctl 函数的用法详解
1.介绍Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进行交互,可得到网络接口的信息,网卡设备的映射属性和配置网络接口.并且还能够查看,修改,删除ARP高速缓存的信息,所以,我们有必要了解一下ioctl函数的具体实现.2.函数说明SYNOPSIS #include int ioctl(int d, int req
2012-11-26 21:39:17
10487
1

原创 IPV4 与IPV6 头部结构与其区别
IPV4I P数据报非常简单,就是在数据块(称为净荷)的前面加上一个包头。I P数据报中的数据(包括包头中的数据)以3 2位( 4字节或4个八位组)的方式来组织。图2 - 3中展示了I P头字段的排列。从中可以看出,所有I P数据报头最小长度是5个字( 2 0字节),如果有其他选项的话,包头可能会更长。1. IP头字段I P v 4头字段包括:• 版本:这个4位字段
2012-11-25 21:41:01
7105

原创 unix 网络编程--select (一)
下面是一个很不错的select的例子,避免了调用fork而产生的新进程的开销:下面是server 代码:#include #include #include /* See NOTES */#include #include #include #include #include #include #define MAXLINE 1024typ
2012-11-15 21:37:15
2484

原创 UNIX 网络编程测试代码 -- UDP通信
运行环境:centos 6.3 说明 :UNIX 网络编程测试代码将客户端、服务端、以及广播消息的服务端都集成一段代码里面,个人感觉还不错呵呵呵里面的注释不多,但是应该不难读懂的,还算比较容易可以把一面代码直接贴下来,用gcc 编译跑一下,会发现在效果还不错#include #include /* See NOTES */#include
2012-11-08 13:11:09
3742
转载 深入讲解有关数据挖掘的10个常见问题
Android C++高级编程[专著] 二楼西北区外侧35排2列2层Android 4高级编程[专著 二楼西北区内侧55排1列4层一 Data Mining 和统计分析有什么不同?硬要去区分Data Mining和Statistics的差异其实是没有太大意义的。一般将之定义为Data Mining技术的CART、CHAID或模糊计算等等理论方法,也都是由统计学者根据
2014-05-16 22:37:01
1059
原创 android apk反编译、修改源码、重新打包全过程
需要的工具:apktool.jar aapt.exe apktool.bat keytool 和 jarsigner dex2jar apktool反编译详细使用教程,包括每个细节。还有为什么反编译不成功,反编译出现的各种情况将为大家详细写出来,有任何问题,请大家批评指正
2014-02-19 19:49:52
7995
转载 android app开发知识点整理
来自网络上的一些文档项目目录结构:Src: java.class源文件Gen: Android开发工具自动生成.自动维护,不能修改R.java 不能手工修改此类中的内容记录各种资源的ID 可以根据R文件中的ID查找各个方法Assets: 存放资源文件.但存放的资源不会在R.java中生成ID 必须指定路径才能引用其中的文件Res: 存
2014-02-19 09:10:07
2778
原创 makefile高级编写示例详解
下面是一个段比较精典的makefile编译示例代码,首先介绍一下代码环境。有三个源文件:a.c b.c main.c ,有两个头文件 a.h b.h ,示例代码与下a.c文件#include "a.h"int myadd(int a,int b){ printf("myadd\n"); return a+b+1 ;}int mysub(int a,int b){ prin
2014-02-11 09:38:59
1318
原创 MD5加密算法(c语言实现)
md5.h文件/*md5.hauthor mwater.www.epopsoft.com */#ifndef _MD5_H_#define _MD5_H_#include #define R_memset(x, y, z) memset(x, y, z)#define R_memcpy(x, y, z) memcpy(x, y, z)#define R_memcmp
2013-08-19 19:32:46
2053
原创 网络编程简单例子(windows、linux)
//client#include #include void main(){ WORD wVersionRequested ; WSADATA wsaData ; int err; wVersionRequested = MAKEWORD( 1, 1) ; err = WSAStartup( wVersionRequested ,&wsaData ); if(err != 0)
2013-08-14 11:09:52
1755
原创 7天上手python(一)基础语法
由于实验室项目的需要,短期内手紧学点python做网络协议(http)等测试,于敢着学了点python,时间比较短,所以学得也不扎实,但勉强可以写写代码,
2013-06-29 19:50:07
199
原创 python模块之HTMLParser
对于python我只是个初学者,由于实践的需要,发现python这个东西对网页的处理,网络编程,http协议测试都非常方便,还有就是web应用的开发框架dijango。刚刚学到HTMLParser这个模块,对于解析html标签非常好用,这里做个小总结吧,共学习参考。1.基础api介绍 HTMLParser是python用来解析html的模块。它可以分析出html里面的标签、数
2013-06-27 15:05:41
1988
原创 python实用小代码
栈的实现#!/usr/bin/env python #coding=utf-8 #python version 2.7.4class stack: def __init__(self,list=None): self.contain = list self.msize=100; self.top = 0; def ge
2013-06-26 15:33:28
2927
原创 python中文乱码的问题
在运行这样类似的代码:#!/usr/bin/env python s="中文" print s最近经常遇到这样的问题:问题一:SyntaxError: Non-ASCII character '\xe4' in file E:\coding\python\Untitled 6.py on line 3, but no encoding declared; see http:
2013-06-26 13:07:54
2345
原创 wxPython菜单与工具栏基础示例
测试环境:系统;windows xppython version: 2.7.41.基本的api介绍Package wx :: Class Menu Type MenuMethod Summary Menu __init__(self, title, style) __repr__(self) MenuItem
2013-06-23 23:45:50
2057
原创 python写的一个邮件发生器
前两天由于项目中需要一个邮件提醒功能,这个功能其它语言都OK,但是发用python是如此的简单啊,在此先贴一下代码,日后再做细细分析哈作者:AshlingR邮箱:AshlingR@163.com时间:2013.6.2#!/usr/bin/env python# -*- coding: utf-8 -*-#导入smtplib和MIMETextimport smtplibfro
2013-06-05 20:13:51
1246
原创 nginx负载均衡策略分析[一](round_robin模块概要)
1.基本情况模块名:round_robin文件位置:ngx_http_upstream_round_robin.c运行阶段:content_phaseRR策略做为默认策略每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。例如: upstream tomcats { server 10.1.1.107:88 max_fails=
2013-05-29 21:04:58
2440
原创 nginx+php(5.4.14)安装、配置详解(负载均衡)
这里仅提供简单的配置示例,关于比较详细的配置文件的信息,以后再做交流实验环境:系统:centos6.2 linux 2.6内核php version: 5.4.14 (当前最新)nginx version : 1.3.16 (当前最新)1.配置框图配置的框架图如下:可以看到有三台机器连接代理:192.168.66.20 其它两台为后台服务器,IP与监听端
2013-05-27 13:31:27
1393
原创 nginx+php(5.4.14)安装、配置详解(单机版)
环境:系统: centos 6.2 linux2.6php: 5.4.14 (当前最新版本)nginx :1.3.16(当前最新版本)1.php的安装安装前.先安装些软件和库文件yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng
2013-05-19 22:20:12
3178
原创 通过iptables实现数据包转发
实验环境:系统:centos6.2 linux2.6vmware虚拟环境测试有A、B、C三台机器A有一个块网卡: eth1:1923168.66.225B一个网卡:eth0:192.168.66.10C一个网卡:eth0:192.168.66.11由于某种需要,我希望B能将数据包发给C,但是又不能直接发送,而A又能与B、C交互数据包,此时,我就希望,B将数据包
2013-05-19 19:11:14
9735
转载 创新的渐进式
转:http://www.huxiu.com/article/14335/1.html文/唐沐从业互联网十余年,第一次在程序员主流杂志上发表文章。这十多年里,只待过两家公司:金山和腾讯。虽然履历不丰,但所幸是两家公司分别是中国软件和中国互联网两个领域的旗舰,中国的创新和外国的不一样,我在其中工作时间都足够长,所见颇多。 在谈创新之前,我想先从我所观
2013-05-10 18:25:18
1087
原创 一个数据库增加大量的随机的数据 (shell 脚本)
这段时间在搞大数方面的研究,大量的数据哪里去找呢呵呵,网上的一些自动生成工具也 不怎么符合自己需求,于是乎自己就编写了一个,能产生大量的随机数据的脚本,还能对配置文件进行配置哦,虽然有些地方做不够灵活,但基本需求也OK啦下面把源代码贴出来分享一下哈有两个文件config.hHOSTNAME='10.33.28.231'PORT='3306'USERNAME="drmtest
2013-05-06 22:39:14
1323
原创 shell脚本的一些用法总汇
1.shell数组的使用赋值:all=(6 5 4 3 1 8 9 10) #一对括号表示是数组,数组元素用“空格”符号分割开。取长度:num=${#a[*]} # ${#a[*或@]} 取元素:member=${a[2]} # 用${数组名[下标]} 下标是从0开始 下标是:*或者@ 得到整个数组内容打印所有元素:echo ${a[*]} #删除某个
2013-05-03 09:56:05
1179
原创 UNP Chapter 25 - 原始套接口(icmp的实现)
25.1. 概述原始套接口提供以下三种TCP及UDP套接口一般不提供的功能。1. 使用原始套接口可以读写ICMPv4,IGMPv4,ICMPv6分组。例如:Ping程序,就使用原始套接口发送ICMP回射请求,并接受ICMP回射应答。用于多播路由的守护进程:mrouted,同样利用原始套接口来发送和接收IGMPv4分组。上述功能同样允许使用ICMP或IGMP构造的应用程序完成作为用户进程处理
2013-04-28 09:32:49
1728
2
原创 一个string类的实现
下面是一个string 类一般实现,重点在于操作符的重载,以后会继续更新#includeusing namespace std;class String{ friend ostream& operator<< (ostream&,String&);public: String(const char* str=NULL); //赋值构造兼默认构造函数(char) St
2013-04-08 09:39:33
853
原创 用汇编来看看inline
inline说明 inline关键字仅仅是建议编译器做内联展开处理,而不是强制。在gcc编译器中,如果编译优化设置为O0,即使是inline函数也不会被内联展开,除非设置了强制内联(__attribute__((always_inline)))属性。对于可展开与必须当成函数的情形同时出现,则在展开处需展开,在当成函数调用处则当函数处理.有下面几个文件test.h ,test6.c
2013-03-28 11:28:21
2044
原创 位操作的一些很实用的例子
位操作带来的快速的运算,下面是一些位操作的小技巧1.求一个数的绝对值unsigned int myabs(int a){ if(a>0) return (unsigned int)a; if(a<0) return 0-(unsigned int )a ;}2.判断两个整数是否同号bool check(int a,int b){ if((unsigned int)(
2013-03-24 23:43:06
896
转载 一个应届计算机毕业生的2012求职之路
1、简介毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾。首先说说我拿到的offer情况:微软,3面->终面,搞定百度,3面->终面,口头offer搜狗,2面,悲剧腾讯,1面,悲剧布丁移动,3面,搞定涂鸦游戏,3面,搞定友盟,3面->CEO面,搞定雅虎,4面->终面,搞定微策略,2面,悲剧人民搜索,3面->终面,
2013-03-23 18:39:34
1062
原创 二叉树的各种操作总汇(c/c++语言实现)
本文总结二叉树的各种操作与C语言的实现头文件#include #include #include #include using namespace std ;数据结构typedef struct Node{ char data ; struct Node * rchild ; struct Node * lchild ;}Node,*pNode;
2013-03-23 18:17:07
2930
原创 看源码学C++运算符重载
“什么是运算符的重载”与“为什么要引入运算符重载?”这两个问题,在这里都不多说了,百度一下就都OK了下面说了一下一些比较容易错的重载,首先看看模板们是如何声明重载的下是iterator 模板中的一段源码,大家看看它的格式:iterator 的一段源码 typedef _Vector_iterator _Myt; reference operator*() const {
2013-03-21 20:01:56
3233
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人