自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(212)
  • 资源 (11)
  • 收藏
  • 关注

原创 macos 升级到11 big sur 后pycharm 闪退

因为要安装xcode, 升级到11 big sur,然后pycharm打开就闪退原因是pycharmjdk 版本太低的原因。pycharm2020 版本的jdk 是pycharm 自带的,不再使用系统的jdk 了。cd /Application/PyCharm.app/Contents/jbr 这个目录下就是jdk.我的系统带的jdk版本为15, pycharm是openjdk。首先删除 rm -rf /Application/PyCharm.app/Contents/jbr/C...

2021-08-10 11:06:54 1758

原创 《python高性能》学习笔记--- 第7章 并行处理 第8章分布式处理

第7章并行处理python库 multiprocessingCython和openMP 使用多线程进行并行编程Theano和Tensorflow自动实现并行性第8章分布式处理Dask distributed 实现分布式并行算法PySpark

2021-07-01 09:43:33 153

原创 《python高性能》学习笔记--- 第6章 实现并发性

并发是一种实现系统同时处理多个请求的方式,其基本理念是在等待资源期间可着手处理其他的资源。并发的工作原理:将任务划分为可不按顺序执行的子任务,而无需等到前面的子任务完成。1、回调函数2、future3、事件循环4、asyncio 框架5、协程6、响应式编程7、多进程...

2021-06-30 19:17:19 169

原创 《python高性能》学习笔记--- 第5章 探索编译器

1、 Numba这是一个库,它在运行阶段使用低级虚拟机(LLVM)工具链堆python函数进行编译numba的中文教程https://apachecn.gitee.io/numba-doc-zh/#/2、PyPy项目,旨在改善python解释器的性能,这是通过在运行阶段自动编译速度缓慢的代码实现的。官网https://www.pypy.org/...

2021-06-30 16:25:03 92

原创 《python高性能》学习笔记--- 第3章 第4章

第三章讲 用NumPy和pandas执行数组操作,这方面的教程网上很多。第四章讲 使用Cpython获得C语言性能Cpython 能够将Python 脚本编译成高效的C语言代码。在不做任何修改的情况下Cpython就能编译大部分python模块。请新建一个名为hello.pyx的文件,并在其中输入如下代码。def hello(): print('Hello, World!')下面的cython命令读取文件hello.pyx,并生成文件hello.c。$ cython hello.pyx.

2021-06-30 15:52:32 90

原创 《python高性能》学习笔记--- 第2章 纯粹的python优化

这章主要介绍一些python的标准库。1、有用的算法和数据结构列表和双端队列bisect 模块 --- 在有序数组中进行快速查找字典字典可以高效的计算列表中独特元素的个数for item in items: counter[item] += 1collections.defaultdict 生成一个字典,并给每个新键自动指定一个默认值。集无序元素集合,且其中的每个元素都必须是独一无二的。堆堆事一种设计用于快速查找并提取集合中最大值和最小值的数据结构...

2021-06-30 15:25:07 104

原创 《python高性能》学习笔记--- 第1章

基准测试与剖析研究高性能之前要先找到计算运行时间的方法.1、linux的time 命令time python test.pyreal 0m1.051s: 从头到尾运行进程实际花费的时间user 0m1.022s :在计算期间,所有CPU话费的时间sys 0m0.028s : 在执行与系统相关的任务(如内存分配)期间,所有CPU花费的总时间。time 为Linux的命令,所以这种办法可以与语言无关。2、python 的 timeit 模块为了测量python脚本的执行时..

2021-06-30 14:07:20 73

原创 《超大流量分布式系统架构解决方案》学习笔记----第五章 读写优化分库分表

说实话分库分表在实际生产环境没有用过,有一段时间专门研究过这个技术,其实核心的就是如何拆分的算法,最简单的就是直接按照id取模,然后分到对应的表中,复杂点的有一致性hash算法,或者hash 槽算法。说白了就是在实际的存储层的之前加一个映射层,比如hash取模后的结果0~1000的数据放到A库,1001~2000的数据放到B库,以此类推,这样就可以方便的解决扩容的问题。紧接着又会产生一个问题,由于id是用的mysql自增id, 分库分表之后的id是不能直接由于mysql自增id生成,不然分到不同的表中会

2021-04-19 19:54:16 127

原创 《超大流量分布式系统架构解决方案》学习笔记----第四章 读写优化

这系列的学习笔记不会粘贴复制书中的内容,更多的是我看了原文之后按照自己的理解,结合自己的项目经验谈自己的感悟。之前技术开发中有提出这样的观点------ 能读缓存的就直接读DB。更进一步,能从redis里面读数据的,就不直接从mysql里面读取。因为redis的读写性能远高于mysql。使用redis,有几个问题1、内存空间有限,需要搭建分布式2、更新问题,主动更新还是被动更新。...

2021-04-19 18:40:02 112

原创 《超大流量分布式系统架构解决方案》学习笔记----第三章 削峰填谷-----流控方案

这里面谈到了两个技术1、API网关限流 2、消息队列API网关限流,这个在kong中作为插件服务,安装后就可以直接使用。限流简单点说就是为了避免后端业务服务器被大流量打垮,在API网关层做了限制,如果单位时间内过多的流量进来直接给屏蔽掉。那么所有的压力都由API网关承担着,如果大流量把API网关给打垮了,那也是没有办法的,一般会选择性能更高的服务器安装API网关程序。用什么样配置服务器,这块的经验我不是很多给不了一个比较合理的意见。消息队列主要用来做异步任务处理的,比如API接口发来一个请求,实

2021-04-19 17:30:13 151

原创 《超大流量分布式系统架构解决方案》学习笔记----第二章 大促备战核弹-----全链路压测

说实话很多中小型公司没有这个成本做全链路压测,这不仅会涉及到开发还会运维,其实我在这方面没有什么经验。之前接触到的项目都是自己测试保证功能ok, 然后再本地做下压力测试,差不多就可以过了,上线用了。一般会搭建一个竟可能接近生产环境的测试环境。之前有个项目,生产环境搭建了mysql主从的,线上经常会出现一些意想不到的问题,后来就在测试环境上也搭建了mysql主从,尽量的让问题在测试环境上就先行暴露出来。这也是一点经验,最开始为了省事,测试环境就搞了个单mysql,生产环境搞了主从,经常出现测试服务

2021-04-19 17:05:22 164 2

原创 《超大流量分布式系统架构解决方案》学习笔记----第一章 大系统小做----大规模服务化架构

这系列的学习笔记不会粘贴复制书中的内容,更多的是我看了原文之后按照自己的理解,结合自己的项目经验谈自己的感悟。互联网领域中的大规模系统往往都是一步一步演进的,不是一蹴而就的。从最初的单机架构,把应用服务、数据库服务、文件服务等都部署到一台服务器,再到,应用服务、数据库服务、文件服务等拆分到不同的服务器上。更进一步的把应用服务按照业务情况拆分到不同的服务器上。这个过程就是不断解耦的过程,实际上每解耦一次系统的风险就增加了一分。拆分出来的服务直接需要连接,连接就意味着不确定性和风险。这样就需要引入高

2021-04-19 16:55:55 315 3

原创 《编写整洁的python代码》学习笔记---第3章 好代码的一般特征+第4章SOLID原则

这两章主要站在软件设计的角度来分析如何写出好的代码。写出好的代码比写出代码更加重要,因为,代码必然会遇到后期的维护、扩展的问题,好的代码易于维护和扩展。怎么样区分什么是好的代码什么是差的代码呢?那就要看代码是否符合接下来要介绍的一般性的软件设计原则。原则方面的是建议,不是一定要这么做,但是这么做了带来的好处多于坏处为什么不这么做呢?SOLIDS: Single Responsibility Principle 单一职责原则O: Open/Closed Principle 打开/关闭原则L:

2021-04-07 15:26:35 123 1

原创 《编写整洁的python代码》学习笔记--第1章简介、代码格式和工具+第2章python风格代码

这一章主要讲python代码的格式问题,可以上网搜一下 python 的 PEP-8规范,了解下 Black , Pylint, Mypy 等几个工具如何使用。这里的建议是使用 pycharm这个IDE工具,然后安装pylint 工具,可以自动做代码规范检测。为什么要用python风格来编写代码?1、每种语言有都有自己的习惯用法,遵循某种语言的习惯用法编写的代码性能更好2、代码更加紧凑,更容易理解3、团队开发使用相同的代码模式和结构,团队效率更高索引和切片python..

2021-04-07 13:22:37 142 2

原创 《编写整洁的Python代码》目录

简介、代码格式和工具 python风格代码 好代码的一般特征 SOLID原则 用装饰器改进代码 用描述符从个对象中获取更多信息 使用生成器 单元测试和重构 常见的设计模式 整洁架构以上是 《编写整洁的python代码》这本书的目录,最近在学习python,不是学习如何用python写几个功能,而是学习在实际项目中如何编写搞质量的python代码。这也是初级和高级程序员的区别,实现和漂亮的实现区别。每个语言都有自己的风格,以前做php的时候,发现php的风格是很松散的,到了pyth

2021-04-07 09:22:10 281

原创 基于 yii2 + 个人项目经验总结出来的一个版本

这套代码框架可以作为基础框架使用,是基于yii2框架,结合自己的项目经验增加了一下composer包,并且对代码里面的若干地方做出了一些修改。这些修改可能并不会完全遵从某个范式或者设计原则,更多是个人经验的一些总结。1、env配置,利用这个可以很好的做好不同环境的配置,测试环境与线上环境的配置肯定会不一样,把配置文件不加入版本管理也是一种解决办法,但是配置文件分布在项目的各个目录下的时候就会很...

2018-10-18 11:41:06 2140

原创 php 多进程下mysql连接 gone away

php 在命令行模式下启动多进程如果父进程有sql查询,可能会导致子进程里面的sql查询 报错  General error: 2006 MySQL server has gone away主要是主进程创建了sql连接,查询完毕后退出了,子进程会复用父进程的连接id,导致错误。解决办法是父进程用其他的办法拿到数据,每个子进程自己创建自己的连接。

2017-12-16 20:00:41 1916

原创 微信公众号文章采集系统-持续更新1

首先要感谢网友对我的支持和鼓励,我也会尽我最大的努力维护该项目。平时由于工作太忙,很多网友的问题不能立马解答,今后会先收集问题然后采用视频的方式来集中回答问题。百度云盘地址不变 链接: https://pan.baidu.com/s/1kV2zh91 密码: ugcn  ,内含最新系统镜像和视频教程这次更新的是虚拟机,主要更新的内容:1、增加git 更新代码,在虚拟机中装了

2017-08-08 10:56:03 704

原创 微信公众号文章采集系统---开箱即用

本着开源精神和方便用户,现已将"微信公众号文章采集系统"打包成虚拟机,你只需下载安装虚拟机镜像,即可使用。

2017-07-29 08:02:03 1432 2

原创 yii 命令行在 crontab 中的执行问题

直接在命令行中输入命令可以正常执行。后来发现在 yii 中的 command 环境里面 有个php的命令根目录下的  yii 文件,注意这个地方需要 根据机器的php环境来配置

2016-06-03 18:38:07 1034

原创 记 搭建邮件服务器(postfix)踩过的坑

首先搭建 postfix 邮件服务器本身难度不大,主要是当遇到问题了能够找打解决办法,有些问题是系统配置问题,你得找到地方修改,再次是有些问题不是那么明显的就在终端显示出来了,你得学会分析日志,分析日志的前提是你得知道有对应日志的存在。先附上链接  www.cmhello.com/lnmp-centos-postfix.html, 基本上按照这篇文章的方法来配置,就可以成功了,但是还是会遇到一些坑

2016-05-16 09:15:08 5183

原创 bee api 快速创建 api项目

官方没有给太多的接受,然后按照视频里面的也始终没有成功,ok ,就说最后创建 成功的指令吧bee api  命令 是 beego 里面通过指定了数据库 快速创建一个 api项目的方法 bee api craw -conn=root:liuhan@\(127.0.0.1:3306\)/test?charset=utf8模型,控制器,测试单元,都给你整好了。

2015-11-26 17:39:50 1864

原创 begoo 的路由 详细

写一些我碰到的问题吧注册一个可以响应任何HTTP的路由beego.Any("/foo",func(ctx *context.Context){ ctx.Output.Body([]byte("bar"))})官网说 , Any是可以响应任何http的路由如果同时存在两个相同的路由怎么处理呢,一个是 Post 一个 是 Any类似这样:

2015-11-25 14:45:51 977

原创 beego 用golang 做http开发的框架

官网  http://beego.me直接在router.go 中写    beego.Any("/foo", func(ctx *context.Context) {        ctx.WriteString("hello world")    })发现会报错routers/router.go:12: undefined: context in context

2015-11-25 14:26:34 1451 1

原创 我的web框架分析方法

从学习php 开始 接触过一些php的开发框架,这些框架可以用来快速的开发网站或者 api服务等,主要是基于http的开发,当然也可以用这些框架做的别的开发例如我就做过爬虫。         实际开发用到的 php框架 主要有 ci ,thinkphp , laravel 等。当学习了这些框架之后,需要抽象出一种可以快速学习其他类似的MVC的开发框架,例如 golang 的 beego ,Py

2015-11-25 13:52:39 678

原创 mysql 的 视图

有两张表,没有字段关联,本来也这两张表也没有任何关系,但是现在的需求是要把这两张表里面的数据都得到然后要做分页,要根据这两张表里面分别有的时间字段来排序。如果把两张表分表做排序后查询出一定数量出来,那么最后合并之后的排序肯定不准,如果是把两张表里面的所有数据都查询出来,然后,合并,排序,再做分页,当数据量太大之后,效率上肯定有缺失。这样的需求是真实存在的,后台在同事的帮助下,解决的办法是

2015-11-13 00:30:54 401

转载 项目部署 python fabric

原文链接http://dormousehole.readthedocs.org/en/latest/patterns/fabric.html使用 Fabric 部署Fabric 是一个 Python 工具,与 Makefiles 类似,但是能够在远程服务器上执行命令。如果与适当的 Python 包(大型应用 )与优良的配置(配置管理 )相结合那么Fabric 将

2015-10-13 14:22:24 718

原创 php op code 缓存 xcache

xcache 缓存 PHP 的 操作码操作码 缓存起来之后,不用每次执行 php 代码的时候,CPU 和内存 重新执行一次,这样减少了 CPU 和 内存的压力,提高效率。说明:php安装目录:/usr/local/phpphp.ini配置文件路径:/usr/local/php/etc/php.iniNginx安装目录:/usr/local

2015-09-21 14:57:22 732

原创 mamp 下 的mysql 安装 python 的 mysql 接口 MySQLdb

搞了几个小时,后来才才发现 mamp 环境下的mysql  无法安装 Python 的 MySQLdb 。解决办法就是 重新编译安装 mysql这是原文链接How to install mysqldb (mysql-python) on MAMPhttp://dreamconception.com/tech/how-to-install-mysqldb-mysql-pyth

2015-09-20 15:59:08 699

原创 Mac Python 操作 粘贴板

Usage is simple:import pyperclippyperclip.copy('The text to be copied to the clipboard.')spam = pyperclip.paste()原文链接http://coffeeghost.net/2010/10/09/pyperclip-a-cross-platform-clipboar

2015-09-20 11:12:47 2924 1

原创 selenium 操作测试对象

1、鼠标点击与键盘输入browser.find_element_by_id("kw").send_keys("XXX") ---用于在输入框里输入 内容browser.find_element_by_id("kw")click()  用于点击一个按钮browser.find_element_by_id("kw").clear() 清除输入框里面的内容2、

2015-09-20 10:35:58 445

原创 selenium 浏览器操作

1、浏览器最大化browser.maximize_window()#将浏览器最大化显示2、设置浏览器宽、高browser.set_window_size(480, 800)3、浏览器的前进、后退browser.back()bro

2015-09-20 10:27:30 1082

原创 selenium python 常用命令---元素定位 休眠

find_element_by_id("kw") -- 通过id 查找元素browser.close() -- 关闭当前窗口browser.quit() -- 退出浏览器元素定位#通过id方式定位browser.find_element_b

2015-09-20 10:23:52 1239

原创 laravel 分页 说明

后端采用laravel框架开发后端php    public function index(){        $res = DB::table('school_news')->orderBy('id' , 'desc')->paginate(2);        //dd($res);        return $this->tpl('viewer.page.pc_

2015-09-17 14:18:22 499

原创 fix-plus fis-plus 是扩展自FIS的前端集成解决方案

http://oak.baidu.com/fis-plus/document.html#%25E5%25BF%25AB%25E9%2580%259F%25E5%2585%25A5%25E9%2597%25A8

2015-09-15 13:57:15 448

原创 laravel -- 安装

http://www.ituring.com.cn/article/194739composer 的安装 可以自行google , 这个没有太大问题的。composer config -l -g ------ 这个命令 找到配置内容 其中的[home]配置项内容找到[home]路径 , 进入 vendor/bin执行 laravel new blog(项目名称)

2015-09-11 18:29:56 340

转载 php 操作 Memcache

http://www.nowamagic.net/librarys/veda/detail/332Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memca

2015-08-21 10:33:46 364

原创 Linux shell 监控 进程执行

Linux 检查进程是否执行,没有则执行,然后 用 crontab 定时执行,就可以对进程进行监控了#!/bin/shps aux|grep "craw_des.py"|grep -v grep   #grep  正则匹配 字符串,grep -v grep --忽略包含grep 的字符串if [ "$?" != "0"  ];thenecho "no craw_des.

2015-08-19 11:27:47 481

原创 sphinx--- 问题记录

./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory 发现sphinx indexer依赖库ibmysqlclient.so.18找不到,通过编辑此文件来修复这个错

2015-08-17 20:40:00 698

原创 ubuntu 防火墙ufw

目录[隐藏]1描述2用法(复述中文含意)3可直接跟在ufw后的参数4规则示例5远程管理6应用程序集成管理7报告8常用操作(新手操作)[编辑]描述 此程序(ufw)是为了使linux防火墙更易于使用和管理。(通常已默认安装)ufw与其它linux类防火墙一样,使用iptable作为后台。安装方法: sudo apt-get inst

2015-08-14 13:38:31 715

互联网项目操盘手册.pdf

互联网项目操盘手册,讲解互联网项目如何操盘,十分值得一看。

2020-04-13

原则 pdf 作者: [美] 瑞·达利欧

※ 华尔街投资大神、对冲基金公司桥水创始人,人生经验之作 作者瑞·达利欧出身美国普通中产家庭,26岁时被炒鱿鱼后在自己的两居室内创办了桥水,现在桥水管理资金超过1 500亿美元,截至2015年年底,盈利超过450亿美元。达利欧曾成功预测2008年金融危机,现在将其白手起 家以来40多年的生活和工作原则公开。 ※ 多角度、立体阐述生活、工作、管理原则 包含21条高原则、139条中原则和365条分原则,涵盖为人处事、公司管理两大方面。此前从未有过的逐一详细解答,配合达利欧多年来的各种实例和感悟。任何人都可以轻松上手实践。用以指导桥水日常管理,是桥水的员工手册,帮助桥水屹立40余年不倒,经受住了现实考验。 ※ 半个金融圈、投资界、管理层都在期待简体中文版 2010年起,简略版的原则被放在桥水官网上,至今共计被下载了超过300万次,无数企业、管理者、职场人士

2019-04-03

php--二维码生成代码

谷歌开源的二维码生成代码 //processing form input //remember to sanitize user input in real-life solution !!! $errorCorrectionLevel = 'L'; if (isset($_REQUEST['level']) && in_array($_REQUEST['level'], array('L','M','Q','H'))) $errorCorrectionLevel = $_REQUEST['level']; $matrixPointSize = 4; if (isset($_REQUEST['size'])) $matrixPointSize = min(max((int)$_REQUEST['size'], 1), 10);

2015-07-23

sphinx + mmseg 中文分词

sphinx + mmseg 中文分词

2015-07-18

批量发博客

批量发新浪博客,注意,只是针对 新浪博客的,其他博客的暂时无效。方便,你把本地的文字上传到你的新浪博客里面

2014-06-28

gh0st的socket内核文件

#include <winsock2.h> #include <MSTcpIP.h> #pragma comment(lib,"ws2_32.lib") #include "Buffer.h" #include "CpuUsage.h" #include <process.h> #include <afxtempl.h> //////////////////////////////////////////////////////////////////// #define NC_CLIENT_CONNECT 0x0001 #define NC_CLIENT_DISCONNECT 0x0002 #define NC_TRANSMIT 0x0003 #define NC_RECEIVE 0x0004 #define NC_RECEIVE_COMPLETE 0x0005 // 完整接收 class CLock { public: CLock(CRITICAL_SECTION& cs, const CString& strFunc) { m_strFunc = strFunc; m_pcs = &cs; Lock(); } ~CLock() { Unlock(); } void Unlock() { LeaveCriticalSection(m_pcs); TRACE(_T("LC %d %s\n") , GetCurrentThreadId() , m_strFunc); } void Lock() { TRACE(_T("EC %d %s\n") , GetCurrentThreadId(), m_strFunc); EnterCriticalSection(m_pcs); } protected: CRITICAL_SECTION* m_pcs; CString m_strFunc; }; enum IOType { IOInitialize, IORead, IOWrite, IOIdle }; class OVERLAPPEDPLUS { public: OVERLAPPED m_ol; IOType m_ioType; OVERLAPPEDPLUS(IOType ioType) { ZeroMemory(this, sizeof(OVERLAPPEDPLUS)); m_ioType = ioType; } }; //lang2.1_3 struct ClientContext //简单分析ClientContext结构体然后回到 SendSelectCommand { SOCKET m_Socket; //套接字 // Store buffers CBuffer m_WriteBuffer; CBuffer m_CompressionBuffer; // 接收到的压缩的数据 CBuffer m_DeCompressionBuffer; // 解压后的数据 CBuffer m_ResendWriteBuffer; // 上次发送的数据包,接收失败时重发时用 int m_Dialog[2]; // 放对话框列表用,第一个int是类型,第二个是CDialog的地址 int m_nTransferProgress; // Input Elements for Winsock WSABUF m_wsaInBuffer; BYTE m_byInBuffer[8192]; // Output elements for Winsock WSABUF m_wsaOutBuffer; HANDLE m_hWriteComplete; // Message counts... purely for example purposes LONG m_nMsgIn; LONG m_nMsgOut; BOOL m_bIsMainSocket; // 是不是主socket ClientContext* m_pWriteContext; ClientContext* m_pReadContext; }; template<> inline UINT AFXAPI HashKey(CString & strGuid) { return HashKey( (LPCTSTR) strGuid); } #include "Mapper.h" typedef void (CALLBACK* NOTIFYPROC)(LPVOID, ClientContext*, UINT nCode); typedef CList<ClientContext*, ClientContext* > ContextList; class CMainFrame; class CIOCPServer { public: void DisconnectAll(); CIOCPServer(); virtual ~CIOCPServer(); NOTIFYPROC m_pNotifyProc; CMainFrame* m_pFrame; bool Initialize(NOTIFYPROC pNotifyProc, CMainFrame* pFrame, int nMaxConnections, int nPort); static unsigned __stdcall ListenThreadProc(LPVOID lpVoid); static unsigned __stdcall ThreadPoolFunc(LPVOID WorkContext); static CRITICAL_SECTION m_cs; void Send(ClientContext* pContext, LPBYTE lpData, UINT nSize); void PostRecv(ClientContext* pContext); bool IsRunning(); void Shutdown(); void ResetConnection(ClientContext* pContext); LONG m_nCurrentThreads; LONG m_nBusyThreads; UINT m_nSendKbps; // 发送即时速度 UINT m_nRecvKbps; // 接受即时速度 UINT m_nMaxConnections; // 最大连接数 protected: void InitializeClientRead(ClientContext* pContext); BOOL AssociateSocketWithCompletionPort(SOCKET device, HANDLE hCompletionPort, DWORD dwCompletionKey); void RemoveStaleClient(ClientContext* pContext, BOOL bGraceful); void MoveToFreePool(ClientContext *pContext); ClientContext* AllocateContext(); LONG m_nWorkerCnt; bool m_bInit; bool m_bDisconnectAll; BYTE m_bPacketFlag[5]; void CloseCompletionPort(); void OnAccept(); bool InitializeIOCP(void); void Stop(); ContextList m_listContexts; ContextList m_listFreePool; WSAEVENT m_hEvent; SOCKET m_socListen; HANDLE m_hKillEvent; HANDLE m_hThread; HANDLE m_hCompletionPort; bool m_bTimeToKill; CCpuUsage m_cpu; LONG m_nKeepLiveTime; // 心跳超时 // Thread Pool Tunables LONG m_nThreadPoolMin; LONG m_nThreadPoolMax; LONG m_nCPULoThreshold; LONG m_nCPUHiThreshold; CString GetHostName(SOCKET socket); void CreateStream(ClientContext* pContext); BEGIN_IO_MSG_MAP() IO_MESSAGE_HANDLER(IORead, OnClientReading) IO_MESSAGE_HANDLER(IOWrite, OnClientWriting) IO_MESSAGE_HANDLER(IOInitialize, OnClientInitializing) END_IO_MSG_MAP() bool OnClientInitializing (ClientContext* pContext, DWORD dwSize = 0); bool OnClientReading (ClientContext* pContext, DWORD dwSize = 0); bool OnClientWriting (ClientContext* pContext, DWORD dwSize = 0); };

2014-06-05

CTrueColorToolBar 类

class CTrueColorToolBar : public CToolBar { // Construction public: CTrueColorToolBar(); // Attributes private: BOOL m_bDropDown; struct stDropDownInfo { public: UINT uButtonID; UINT uMenuID; CWnd* pParent; }; CArray m_lstDropDownButton; // Operations public: BOOL LoadTrueColorToolBar(int nBtnWidth, UINT uToolBar, UINT uToolBarHot = 0, UINT uToolBarDisabled = 0); void AddDropDownButton(CWnd* pParent, UINT uButtonID, UINT uMenuID); private: BOOL SetTrueColorToolBar(UINT uToolBarType, UINT uToolBar, int nBtnWidth); // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CTrueColorToolBar) //}}AFX_VIRTUAL // Implementation public: virtual ~CTrueColorToolBar(); // Generated message map functions protected: //{{AFX_MSG(CTrueColorToolBar) afx_msg void OnToolbarDropDown(NMHDR * pnmh, LRESULT* plRes); //}}AFX_MSG DECLARE_MESSAGE_MAP() };

2014-06-04

使用OllyDbg从零开始Cracking

第一章-OD的各个窗口介绍 第二章-数制系统 第三章-寄存器 第四章-汇编指令 第五章-数学指令 第六章-比较和条件跳转指令 第七章-call,ret 第八章-循环,字符串指令和寻址方式 第九章-基本概念 第十章-断点 第十一章-硬件断点与条件断点 第十二章-消息断点

2014-05-04

各种跳转指令.pdf

汇编中各种跳转指令 jmp jne je 不错的资源

2013-11-23

电子商务与社交网络的可能结合.

我对电子商务和社交网络的一点思考,有兴趣的可以交流交流

2011-12-18

空空如也

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

TA关注的人

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