2018年3月8日
摘要: 要求: 1.使用Unicode(支持中文). 2.使用源代码.(不使用静态或者动态库) 3.实现文件夹压缩解压缩即可.(不提供单文件压缩和内存压缩) 4.压缩格式为ZIP. 5.具有一定的容错能力.(判断用户输入的内容) 代码如下: *********************ZipImplement 阅读全文
posted @ 2018-03-08 17:03 xmj 阅读(2125) 评论(0) 推荐(0)
摘要: 还记得2011年春运,12306火车票预订网站经常崩溃无法登录吗。 今天我们就开发一个12306网站自动登录软件。 帮助您轻松订票 通过前两篇博客Fiddler教程和HTTP协议详解,我们了解了Web的原理. Web的原理就是,浏览器发送一个Request给Web服务器,Web服务器处理完这个请求之 阅读全文
posted @ 2018-03-08 16:29 xmj 阅读(1140) 评论(0) 推荐(0)
摘要: 当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大 阅读全文
posted @ 2018-03-08 16:29 xmj 阅读(171) 评论(0) 推荐(0)
摘要: 窗体上放一个WebBrowser,其Url属性设置为http://www.alimama.com/membersvc/member/login.htm,其他属性为默认 再放一个Button,默认 Button按钮的代码如下(方法一) view plaincopy to clipboardprint? 阅读全文
posted @ 2018-03-08 16:28 xmj 阅读(671) 评论(0) 推荐(0)
摘要: 去年过年放假的时候写了一个12306.cn网站的自动登录器,刚好那时候放假了,所以没把源代码放出来,现在将代码发出来,由于编写得比较仓促(从放假的下午19:00左右到晚上到00:00左右),很多细节问题考虑不是很全面,如断网的情况未考虑,界面比较简单,错误之处请大家批评指正. 注意:本程序基于.ne 阅读全文
posted @ 2018-03-08 16:28 xmj 阅读(275) 评论(0) 推荐(0)
摘要: 引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教。 在开始Android开发之旅启动之前,首先要搭建环境,然后创建一个简单的HelloWorld。本文的主题如下 阅读全文
posted @ 2018-03-08 16:27 xmj 阅读(155) 评论(0) 推荐(0)
摘要: 分析部分 当我们访问QQ空间的时候,大家可以在右侧的发现一个这样的统计信息 当点击这个链接的时候,会跳转到 这样一个URL 这个URl可以管理好友,当然也就能读取到好友 上面我们是在浏览器中的操作,接下来看看数据到底怎么获取的,我们通过Fiddler的查找功能,就可以查找到web请求和内容信息,我们 阅读全文
posted @ 2018-03-08 16:26 xmj 阅读(3649) 评论(0) 推荐(0)
摘要: 作者:Kenny Kerr 翻译:Dflying Chen 原文:http://weblogs.asp.net/kennykerr/archive/2006/09/29/Windows-Vista-for-Developers-_1320_-Part-4-_1320_-User-Account-Co 阅读全文
posted @ 2018-03-08 16:26 xmj 阅读(412) 评论(0) 推荐(0)
摘要: QQ登陆功能的实现2 由于看到园子里有朋友说需要讲解和剖析实现的步骤,前面的QQ登陆实现只有代码,所以这篇补上 1. 分析 1). 当运行QQ.exe后会出现qq登陆界面的窗体 2). 我们用spy++分析窗体可以看到窗体有2个子控件,一个是账号输入框,一个密码框 3). 再用spy++做事件分析, 阅读全文
posted @ 2018-03-08 16:25 xmj 阅读(420) 评论(0) 推荐(0)
摘要: 一,分析 1,群数据获取 当访问http://qun.qq.com/air/#mygroup我们通过Fiddler可以查看到QQ群列表是从http://qun.qq.com/air/group/mine?w=a这个URL获取到的群列表信息 其中返回的json数据,json构成如下 从上面我们可以看出 阅读全文
posted @ 2018-03-08 16:25 xmj 阅读(1871) 评论(0) 推荐(0)
摘要: 我不喜欢废话,上代码 /// <summary> /// 运行程序返回进程pid /// </summary> /// <param name="qqPath"></param> /// <returns></returns> static public int RunProgram(string 阅读全文
posted @ 2018-03-08 16:24 xmj 阅读(372) 评论(0) 推荐(0)
摘要: Preface 因为项目需要,开始从事ActiveX方面的工作,看了一些资料,可惜都是些COM原理方面的,没有切合实际动手的东西,在CodeProject上读完David Marcionek的文章【1】后,收获良多,但也遇到一些恼人的小问题,因此在其基础上就一些易错点做些小注解。本文版权归David 阅读全文
posted @ 2018-03-08 16:23 xmj 阅读(3131) 评论(0) 推荐(0)
摘要: 本章讲述在名字和数值地址间进行转换的函数:gethostbyname和gethostbyaddr在主机名字与IP地址间进行转换,getservbyname和getservbyport在服务器名字和端口号间进行转换。 1.域名系统 域名系统(Domain Name System,DNS)主要用于主机名 阅读全文
posted @ 2018-03-08 16:22 xmj 阅读(281) 评论(0) 推荐(0)
摘要: 一、IPv4与IPv6的互操作性 1.IPv4客户与IPv6服务器 拥有双重协议栈的主机的一个基本特性就是:其上运行的IPv6服务器既能应付IPv4客户,又能应付IPv6客户。这是通过使用IPv4映射的IPv6地址实现的。 要求,ipv6服务器必须具有双重协议栈,即服务器必须同时拥有ipv4地址和i 阅读全文
posted @ 2018-03-08 16:22 xmj 阅读(381) 评论(0) 推荐(0)
摘要: 近段时间,实验室电脑的IP频繁地改变,搞得想用远程偷下懒都不行。这时想到的解决方法有:静态IP,动态域名,自己解决。静态IP虽然可以自己指定,但一关机后,与对方冲突就完了,作罢。免费的动态域名又要手机认证,也作罢。最后只能自己解决。解决方案是写一个程序不断地检测本机IP,如果改变了,就发邮件通知。检 阅读全文
posted @ 2018-03-08 16:21 xmj 阅读(738) 评论(0) 推荐(0)
摘要: #include <string>using namespace std;class ZBase64{public: /*编码 DataByte [in]输入的数据长度,以字节为单位 */ string Encode(const unsigned char* Data,int DataByte); 阅读全文
posted @ 2018-03-08 16:20 xmj 阅读(343) 评论(0) 推荐(0)
摘要: DLL的远程注入技术是目前Win32病毒广泛使用的一种技术。使用这种技术的病毒体通常位于一个DLL中,在系统启动的时候,一个EXE程序会将这个DLL加载至某些系统进程(如Explorer.exe)中运行。这样一来,普通的进程管理器就很难发现这种病毒了,而且即使发现了也很难清除,因为只要病毒寄生的进程 阅读全文
posted @ 2018-03-08 16:19 xmj 阅读(409) 评论(0) 推荐(0)
摘要: 最近写程序,碰到要检测程序是否运行在虚拟机内的问题。在网上找了一下,找到下面两个函数,可以检测程序是否运行在virtual machine中,支持VMWARE 和virtual pc检测. 主要的原理,都是利用virtual machine往往支持一些真实PC不支持的指令. // IsInsideV 阅读全文
posted @ 2018-03-08 16:19 xmj 阅读(3076) 评论(0) 推荐(0)
摘要: 点这里下载示例代码 实现文件自删除不是一个特别新的话题了,不过貌似一直没有特别完美的解决方式。从早先Gary Nebbett的堆栈溢出版本到后来的批处理、临时文件等方式,无不存在着各样瑕疵:如堆栈溢出不支持XP,临时文件(批处理)不够优雅等等。 当然,还有用驱动发IRP的方式,不过这只是一个自删除, 阅读全文
posted @ 2018-03-08 16:18 xmj 阅读(202) 评论(0) 推荐(0)
摘要: 一般情况下,每个进程都有自己的私有空间,理论上,别的进程是不允许对这个私人空间进行操作的,但是,我们可以利用一些方法进入这个空间并进行操作,将自己的代码写入正在运行的进程中,于是就有了远程注入了。 对dll后门的编写就不作过多的讨论了,现在来看实现注入功能的可执行文件的编写: 用到的函数有: 先简单 阅读全文
posted @ 2018-03-08 16:06 xmj 阅读(1029) 评论(0) 推荐(0)
摘要: 下面的代码从含有多个结束符的字符串中分离出单词来,需要对strtok_s有清楚的认识。这段代码是我在写一个处理文件中单词个数时用来分离读取到的字符串中的单词时写的,亲测可用~ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 阅读全文
posted @ 2018-03-08 16:05 xmj 阅读(595) 评论(0) 推荐(0)
摘要: 阅读目录 1,WEBQQ的登陆协议 2,传说中的心跳包 3,获得群,好友, 4实战(盗号-外挂-广告) 要说怎么突然研究起WEBQQ,也是比较偶然的机会,因为前一份工作专注于B2C商城的开发, 经常,自己写点工具,模拟一个HTTP请求来进行秒杀之类的,然后联想到QQ的农场,牧场 有很多辅助的小工具, 阅读全文
posted @ 2018-03-08 16:04 xmj 阅读(649) 评论(0) 推荐(1)
摘要: 最近尝试去了解WINDOWS下的驱动开发,现在总结一下最近看到的资料。 1.首先,先从基础的东西说起,开发WINDOWS下的驱动程序,需要一个专门的开发包,如:开发JAVA程序,我们可能需要一个JDK,开发WINDOWS应用程序,我们需要WINDOWS的SDK,现在开发WINDOWS下的驱动程序,我 阅读全文
posted @ 2018-03-08 16:03 xmj 阅读(502) 评论(0) 推荐(0)
摘要: 随着Windows Vista和Windows Server 2008的相继发布,微软的驱动开发工具也进行了相应的更新换代。原来的驱动开发工具包叫做DDK(Driver Develpment Kit),现在新版本的叫做WDK(Windows Driver Kit)。DDK或者说WDK不像SDK一样可 阅读全文
posted @ 2018-03-08 16:03 xmj 阅读(541) 评论(0) 推荐(0)
摘要: 原创作品,转载请注明出自xelz's blog 博客地址:http://mingcn.cnblogs.com/ 本文地址:http://mingcn.cnblogs.com/archive/2010/10/31/aes_c.html 快毕业了,最后一个课程设计,《基于Windows Socket的安 阅读全文
posted @ 2018-03-08 16:02 xmj 阅读(17087) 评论(1) 推荐(2)
摘要: class Table{Name * p;size_t sz;publish:Table(size_t s = 15){p = new Name[sz=s];}~Table(){delete[]p ;}......}void h(){Table t1;Table t2 = t1;Table t3;t 阅读全文
posted @ 2018-03-08 16:02 xmj 阅读(998) 评论(0) 推荐(0)
摘要: 波士顿大学的Howard Straubing做了这么一个动画来展示AES加密算法的演示,挺不错的。 点击这里看全屏 阅读全文
posted @ 2018-03-08 16:01 xmj 阅读(799) 评论(0) 推荐(0)
摘要: 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。 用re = new 阅读全文
posted @ 2018-03-08 16:00 xmj 阅读(173) 评论(0) 推荐(0)
摘要: 有时需要出发菜单功能,例如发送ALT + F打开应用程序的文件菜单,如何使用SendMessage实现呢? 使用用spy++截取的ALT+F的消息内容(如何使用spy++,请熟悉的高手指点下,我使用spy++ lite没有得到):<00001> 000310DC P WM_SYSKEYDOWN nV 阅读全文
posted @ 2018-03-08 16:00 xmj 阅读(1565) 评论(0) 推荐(0)
摘要: 有人说只要了解了javascript的基本语法,就可以通过看别人的代码来学习javascript了,我不敢苟同。代码是死的,它很难让你有自己的想法,而一本好书如果结构清晰,各个章节都立意明确循序渐进(当然如果作者能有点小幽默就更好了),可以帮助你学习该如何思考,这并不是唬人,更何况大部分时候你可能都 阅读全文
posted @ 2018-03-08 15:59 xmj 阅读(7293) 评论(0) 推荐(0)
摘要: 今天在看base64编码转换时,既然对负数的二进制表示有些遗忘,在网上找了一下资料,贴出来已备在此遗忘: 假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为: 00000000 00000000 00000000 00000101 5转换成二制是101,不过int类型的数占用4字 阅读全文
posted @ 2018-03-08 15:59 xmj 阅读(1430) 评论(0) 推荐(0)
摘要: DLL注入的常用方式之一远程线程注入,实现代码如下 // CreateRemoteThread.cpp : Defines the entry point for the application.//#include "stdafx.h"#include <stdio.h>#include <tlh 阅读全文
posted @ 2018-03-08 15:58 xmj 阅读(374) 评论(0) 推荐(0)
摘要: 一、远程线程注入基本原理 远程线程注入——相信对Windows底层编程和系统安全熟悉的人并不陌生,其主要核心在于一个Windows API函数CreateRemoteThread,通过它可以在另外一个进程中注入一个线程并执行。在提供便利的同时,正是因为如此,使得系统内部出现了安全隐患。常用的注入手段 阅读全文
posted @ 2018-03-08 15:57 xmj 阅读(337) 评论(0) 推荐(0)
摘要: 一.YUIDoc概述以及安装YUIDoc是为YUI Library用来生成HTML版API文档的一系列工具集,文档的生成完全基于JavaDoc风格的代码注释规则。该工具是基于Python语言编写,并且使用了几个基于Python的扩展组件作为底层支持,如读写json对象、HTML模板管理以及源代码着色 阅读全文
posted @ 2018-03-08 15:56 xmj 阅读(238) 评论(0) 推荐(0)
摘要: 场景:某页面用了js延时加载技术处理所有图片,以改善用户体验,但是有几个图片不想延时加载,要求把它们单独挑出来。 研究了一下jQuery的API文档,搞掂了,jQuery真的很方便,贴在这里备份: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <!doctype 阅读全文
posted @ 2018-03-08 15:56 xmj 阅读(229) 评论(0) 推荐(0)
摘要: 在Windows 下实现SNMP协议的编程,可以采用Winsock接口,在161,162端口通过udp传送信息。在Windows 2000中,Microsoft已经封装了SNMP协议的实现,提供了一套可供在Windows下开发基于SNMP的网络管理程序的接口,这就是 WinSNMP API。 3.1 阅读全文
posted @ 2018-03-08 15:55 xmj 阅读(2206) 评论(0) 推荐(0)
摘要: 之前我们要将一个表中的数据导出为脚本,那么只有在网上找一个导出数据的Script,然后运行就可以导出数据脚本了。现在在SQL Server 2008的Management Studio中增加了一个新特性,除了导出表的定义外,还支持将表中的数据导出为脚本。导出过程: 在SSMS2008(SQL Ser 阅读全文
posted @ 2018-03-08 15:55 xmj 阅读(216) 评论(0) 推荐(0)
摘要: openssl可以直接使用命令对文件件进行base64的编码与解码,利用openssl提供的API同样可以做到这一点。 废话不多说,直接上代码了。需要注意的是通过base64编码后的字符每64个字节都会有一个换行符的存在。 阅读全文
posted @ 2018-03-08 15:54 xmj 阅读(2220) 评论(0) 推荐(0)
摘要: 基于 TCP/IP 的网络管理包括两部分:网络管理站 (manager) 和被管理的网络单元(被管设备)。这些被管设备的共同点就是都运行 TCP/IP 协议。管理进程和代理进程之间的通信有两种方式,一种是管理进程向代理进程发出请求,询问参数值,另一种方式是代理进程主动向管理进程报告某些重要的事件。  阅读全文
posted @ 2018-03-08 15:54 xmj 阅读(377) 评论(0) 推荐(0)
摘要: 开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件。(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网上发表相关内容的朋友们。) ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主 阅读全文
posted @ 2018-03-08 15:19 xmj 阅读(154) 评论(0) 推荐(0)
摘要: 声明:本文代码基于CodeProject的文章《A Complete ActiveX Web Control Tutorial》修改而来,因此同样遵循Code Project Open License (CPOL)。 最近遇到两个需求:1)在ActiveX控件中使用工作线程来完成底层的硬件设备扫描任 阅读全文
posted @ 2018-03-08 15:19 xmj 阅读(866) 评论(0) 推荐(0)
摘要: Download demo project - 231 Kb Introduction ActiveX is a Microsoft technology developed in the mid 90’s, that allows for the creation of applet-like a 阅读全文
posted @ 2018-03-08 15:18 xmj 阅读(360) 评论(0) 推荐(0)
摘要: VARIANT变量是COM组件之间互相通信的重要的参数变量之一,它可以容纳多种不同的类型,如short、long、double等,包括各类指针和数组。组件之间的互相调用是比较耗时的,尤其带当组件位于不同进程中时,因此,减少传递次数是提高效率的一种有效方法。其中,Excel表格的操作就可能涉及到大量数 阅读全文
posted @ 2018-03-08 15:18 xmj 阅读(419) 评论(0) 推荐(0)
摘要: 将用户自定义的C结构数据存储成VARIANT类型,需要时再将VARIANT类型转为用户自定义的结构数据,有十分现实的意义,既然我们不想为这样的结构数据写一个COM包装类。虽然有很多方法和手段生成这样的VARIANT,但是,多数时候可能需要一个更加简单的,灵活的方法。我在做远程过程调用的C接口时,忽然 阅读全文
posted @ 2018-03-08 15:17 xmj 阅读(406) 评论(0) 推荐(0)
摘要: Introduction JSON (JavaScript Object Notation) is a lightweight data-interchange format. It can represent integer, real number, string, an ordered seq 阅读全文
posted @ 2018-03-08 15:16 xmj 阅读(369) 评论(0) 推荐(0)
摘要: // WindowsSocketServer.cpp : 定义控制台应用程序的入口点。// #include "stdafx.h"#include <iostream>#include <string>#include <Windows.h>#include <Winsock2.h>#include 阅读全文
posted @ 2018-03-08 15:15 xmj 阅读(1757) 评论(0) 推荐(0)
摘要: 经过今天尝试MFC解析XML串,也算有了不少收获,总结一下。 我是使用的CMarkup类对XML进行操作。 CMarkup好象都是先从一个xml文件里面把内容读出来,再进行解析,搞得我恨不得要把我的CString写到xml文件里面再取出来了。 如果需要直接读取CString,可以直接用 CMarku 阅读全文
posted @ 2018-03-08 15:15 xmj 阅读(144) 评论(0) 推荐(0)
摘要: XML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini。VC++里操作XML有两个库可以用:MSXML和XmlLite。MSXML又细分了两种接口:DOM和SAX2。XP没自带有XmlLite,只自带有2.x、 阅读全文
posted @ 2018-03-08 15:15 xmj 阅读(244) 评论(0) 推荐(0)
摘要: 在掌握了socket相关的一些函数后,套接字编程还是比较简单的,日常工作中碰到很多的问题就是客户端/服务器模型中,如何让服务端在同一时间高效的处理多个客户端的连接,我们的处理办法可能会是在服务端不停的监听客户端的请求,有新的请求到达时,开辟一个新的线程去和该客户端进行后续处理,但是这样针对每一个客户 阅读全文
posted @ 2018-03-08 15:14 xmj 阅读(251) 评论(0) 推荐(0)
摘要: 在最近的一篇文章中说到了,如何创建ActiveX,这次我们来响应事件。这次,我们将创建一个类:CGeneralEventSink,它能够响应任何Dispatch事件(事件的接口继承与IDispatch)。 首先,我们来回顾一下ConnectionPoint的概念。任何支持事件的对象(比如,Activ 阅读全文
posted @ 2018-03-08 15:12 xmj 阅读(470) 评论(0) 推荐(0)
摘要: 虽然这里一片的.net气氛,到处充斥着像MVC、WPF、WorkFlow、LINQ等各种niubility的术语。但我们使用的Windows还是由COM技术主宰着;我们在选择日常使用的软件时,也会避免使用.net开发的软件。即便是.net的桌面程序,也会经常使用ActiveX控件。这篇文章就让我们用 阅读全文
posted @ 2018-03-08 15:12 xmj 阅读(843) 评论(0) 推荐(0)
摘要: 这篇文章介绍下libevent在socket异步编程中的应用。在一些对性能要求较高的网络应用程序中,为了防止程序阻塞在socket I/O操作上造成程序性能的下降,需要使用异步编程,即程序准备好读写的函数(或接口)并向系统注册,然后在需要的时候只向系统提交读写的请求之后就继续做自己的事情,实际的读写 阅读全文
posted @ 2018-03-08 15:12 xmj 阅读(232) 评论(0) 推荐(0)
摘要: 本节将介绍第一个实现具体传输功能的类TSocket,这个类是基于TCP socket实现TTransport的接口。下面具体介绍这个类的相关函数功能实现。 1.构造函数 分析一个类的功能首先看它的定义和构造函数实现,先看看它的定义: 由定义可以看书TSocket继承至虚拟传输类,并且把自己当做模板参 阅读全文
posted @ 2018-03-08 15:11 xmj 阅读(911) 评论(0) 推荐(0)
摘要: 我的新浪微博:http://weibo.com/freshairbrucewoo。 欢迎大家相互交流,共同提高技术。 这个两个类的主要功能就是为生成所有语言的代码提供基础信息和提供具体代码生成器对象,上面就是调用这个两个类的方法来生成具体语言的代码生成器对象和执行生成代码的功能函数。下面主要分析两个 阅读全文
posted @ 2018-03-08 15:10 xmj 阅读(297) 评论(0) 推荐(0)
摘要: 我的新浪微博:http://weibo.com/freshairbrucewoo。 欢迎大家相互交流,共同提高技术。 又很久没有写博客了,最近忙着研究GlusterFS,本来周末打算写几篇博客的,但是由于调试GlusterFS的一些新增功能就用了整整的一天,还有一天就陪老婆大人逛街去了!今晚浏览完微 阅读全文
posted @ 2018-03-08 15:10 xmj 阅读(455) 评论(0) 推荐(0)
摘要: 1.要加一个头文件: #include <objsafe.h>2.在控件头文件中加入: 3.在控件的CPP文件中加入: //OK!不会再弹出那个“与ActiveX控件交互不安全“的对话框了~~~ //其中CVP2PCtrl全部要换成你的控件的类名 阅读全文
posted @ 2018-03-08 15:09 xmj 阅读(359) 评论(0) 推荐(0)
摘要: 命令 k k命令显示的是一定数量的栈帧, 其中帧的数量是由.kframes命令来控制的, 默认值是256。 kp 5 显示调用栈中前5个函数以及他们的参数. kb 5 显示调用栈中前五个函数以及他们的前三个参数. kf 5 显示在调用栈中五个函数所使用的栈的大小. 每个栈帧所占的空间使用量的计算方法 阅读全文
posted @ 2018-03-08 15:08 xmj 阅读(398) 评论(0) 推荐(0)
摘要: 一般要捕获异常只需要两个函数:SetUnhandledExceptionFilter截获异常;MiniDumpWriteDump写dump文件。但是由于CRT函数可能会在内部调用SetUnhandledExceptionFilter(NULL),解除我们程序设置的异常处理,这导致我们的程序无法完整捕 阅读全文
posted @ 2018-03-08 14:00 xmj 阅读(354) 评论(0) 推荐(0)
摘要: 一.本文所涉及的内容(Contents) 二.背景(Contexts) 思考这样的场景:数据库的表、存储过程经常别修改,当这些修改造成BUG的时候,很多开发都不承认是他们干的,那我们有没办法找出谁干的呢? SQL Server有Default Trace默认跟踪,数据库记录信息到log.trc文件, 阅读全文
posted @ 2018-03-08 12:43 xmj 阅读(1655) 评论(0) 推荐(0)
摘要: gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。绝大多数的C++web服务工具包提供一组API函数类库来处理特定的SOAP数据结构,这样就使得用户必须改变程序结构来适应相关的类库。与之相反,gSOAP利用编 阅读全文
posted @ 2018-03-08 12:43 xmj 阅读(214) 评论(0) 推荐(0)
摘要: ServiceStack.Redis 使用教程里提到Redis最好还是部署到Linux下去,Windows只是用来做开发环境,现在这个命题发生改变了,在Windows上也可以部署生产环境的Redis,这都要感谢微软的开放,把Redis在Windows上的环境给我们搞定了,最新的版本已经支持64位了。 阅读全文
posted @ 2018-03-08 12:42 xmj 阅读(658) 评论(0) 推荐(0)
摘要: OTL之Oracle开发总结 转 关 于OTL,网上介绍的也不少,但看来看去也只是官方的那些文档。OTL很好用,结合官方提供的一些例子,多多尝试才能领悟。经过一个月左右的项目开发,对 OTL也有些了解,在这里总结一下,希望对刚接触OTL的新手有所帮助。其中有些地方,比如对网络异常的处理,可是费了我两 阅读全文
posted @ 2018-03-08 12:41 xmj 阅读(326) 评论(0) 推荐(0)
摘要: 今天中午,有朋友叫我帮他看一下数据库,操作系统是Windows2008R2 ,数据库是SQL2008R2 64位 64G内存,16核CPU 硬件配置还是比较高的,他说服务器运行的是金蝶K3软件,数据库实例里有多个数据库 现象 他说是这几天才出现的,而且在每天的某一个时间段才会出现CPU占用高的情况 阅读全文
posted @ 2018-03-08 12:41 xmj 阅读(261) 评论(0) 推荐(0)
摘要: >LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 问题说明:当安装VS2012之后,原来的.NET 4.0会被替换为.NET 4.5。卸载VS2012时,不会恢复.NET 4.0。 l 当VS2012安装后,VS2010的cvtres.exe就无 阅读全文
posted @ 2018-03-08 12:40 xmj 阅读(185) 评论(0) 推荐(0)
摘要: 堆破坏 所谓的堆破坏,是说没控制好自己的指针,把不属于你分配的那块内存给写覆盖了。这块内存可能是你程序的数据,也可能是堆的管理结构。那么这个会导致怎样的后果呢?可能的情况我们来yy下 堆破坏较为理想的情况是被修改的数据会马上导致程序crash,最差的情况是你的堆数据莫名其妙在今天被改了,但明天才cr 阅读全文
posted @ 2018-03-08 12:39 xmj 阅读(868) 评论(0) 推荐(0)
摘要: 在前面C++中基于Crt的内存泄漏检测一文中提到的方法已经可以解决我们的大部分内存泄露问题了,但是该方法是有前提的,那就是一定要有源代码,而且还只能是Debug版本调试模式下。实际上很多时候我们的程序会用到第三方没有源代码的模块,有些情况下我们甚至怀疑系统模块有内存泄露,但是有没有证据,我们该怎么办 阅读全文
posted @ 2018-03-08 12:39 xmj 阅读(468) 评论(0) 推荐(0)
摘要: Linux下的Valgrind真是利器啊(不知道Valgrind的请自觉查看参考文献(1)(2)),帮我找出了不少C++中的内存管理错误,前一阵子还在纠结为什么VS 2013下运行良好的程序到了Linux下用g++编译运行却崩溃了,给出一堆汇编代码也看不懂。久久不得解过后,想想肯定是内存方面的错误, 阅读全文
posted @ 2018-03-08 12:38 xmj 阅读(467) 评论(0) 推荐(0)
摘要: C/C++由于灵活、高效的优点一直以来都是主流的程序设计语言之一,但是其内存的分配与释放均由程序员自己管理,当由于疏忽或错误造成程序未能释放不再使用的内存时就会造成内存泄漏。在大型、复杂的应用程序中,内存泄漏往往是最常见的问题,因而及时解决内存泄漏非常必要。tMemMonitor (TMM)作为一个 阅读全文
posted @ 2018-03-08 12:37 xmj 阅读(1033) 评论(0) 推荐(0)
摘要: 在使用VS2010编译C++程序的时候,每次修改工程中的某一个文件,点击“生成-仅用于项目-仅生成**”时,往往都是整个工程都需要重新编译一遍。由于这个工程代码量太大,每次编译完成都需要将近10分钟左右的时间编译。最烦人的时候是当编译完了出错,修改了错误再次编译,浪费很多时间。那么怎么配置VS201 阅读全文
posted @ 2018-03-08 12:37 xmj 阅读(1121) 评论(0) 推荐(0)
摘要: API Monitor是一个免费软件,可以让你监视和控制应用程序和服务,取得了API调用。 它是一个强大的工具,看到的应用程序和服务是如何工作的,或跟踪,你在自己的应用程序的问题。 64位支持 API监控支持监控的64位应用程序和服务。 64位版本只能用来监视64位应用程序和32位版本仅可用于监测的 阅读全文
posted @ 2018-03-08 12:36 xmj 阅读(1134) 评论(0) 推荐(0)
摘要: 自从操作系统升级到64位以后,就要不断的需要面对32位、64位的问题。相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别。同时,对于程序的dll文件应该放到System32文件夹,还是SysWow64,大部分人做的决定是 阅读全文
posted @ 2018-03-08 11:31 xmj 阅读(412) 评论(0) 推荐(0)
摘要: NetAnalyzer下载地址 距离新本的NetAnalyzer已经发布一段时间了,因为比较忙期间只出了一个视频教程,一直没有来的急写文档,今天就在这边简单写一下。 一.界面概览 NetAnalyzer2016(版本 3.0) 使用了Ribbon界面,大部分的操作都通过Ribbon完成,在工作区域 阅读全文
posted @ 2018-03-08 11:30 xmj 阅读(272) 评论(0) 推荐(0)
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 引言 调度器作为操作系统的核心部件,具有非常重要的意义,其随着linux内核的更新也不断进行着更新。本系列文章通过linux-3.18.3源码进行调度器的学习和分析,一步一步将linux现有的调度器原原本本的展现 阅读全文
posted @ 2018-03-08 11:29 xmj 阅读(508) 评论(0) 推荐(0)
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 最近在学习内核模块的框架,这里做个总结,知识太多了。 分段和分页 先看一幅图 也就是我们实际中编码时遇到的内存地址并不是对应于实际内存上的地址,我们编码中使用的地址是一个逻辑地址,会通过分段和分页这两个机制把它转 阅读全文
posted @ 2018-03-08 11:28 xmj 阅读(423) 评论(0) 推荐(0)
摘要: Thrift源于大名鼎鼎的facebook之手,在2007年facebook提交Apache基金会将Thrift作为一个开源项目,对于当时的facebook来说创造thrift是为了解决facebook系统中各系统间大数据量的传输通信以及系统之间语言环境不同需要跨平台的特性。所以thrift可以支持 阅读全文
posted @ 2018-03-08 11:27 xmj 阅读(218) 评论(0) 推荐(0)
摘要: 引言 Linus心灵鸡汤 在*nix开发中有道卡叫gdb调试,不管你怎么搞. 它依然在那丝毫不会松动.今天致敬一个 活着的传奇 Linus Torvalds Unix 始于上个世纪60年代,在70年代得到了迅猛的发展, 这时候的李纳斯还躺在祖父公寓的摇篮里睡大觉,如果不是后来 Unix 王国自乱阵脚 阅读全文
posted @ 2018-03-08 11:27 xmj 阅读(257) 评论(0) 推荐(0)
摘要: 一、介绍 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、一个高性能的key-value数据库。并提供多种语言的API。说到Key-Value数据库NoSQL数据库可以想到MongoDB。 和Memcached类似,它支持存储的value类型相对更多,包括st 阅读全文
posted @ 2018-03-08 11:26 xmj 阅读(144) 评论(0) 推荐(0)
摘要: 一.引子与协议说明 之前开发了一个项目——车载导航系统。遇到的第一个问题就是硬件设备如何与服务器通信。 关键在于通信协议! 众所周知:要想实现通信,首先通信双方就要达成通信协议。 话不多说,且看协议: ————————————————华丽的分割线————————————————— 以上的这些协议说明 阅读全文
posted @ 2018-03-08 11:13 xmj 阅读(969) 评论(0) 推荐(0)
摘要: Apache Thrift 是FaceBook实现的一种跨平台的远程服务调用(RPC)的框架。它采用接口描述语言(IDL)定义并创建服务,传输数据采用二进制格式,相对于XML和Json等常用数据传输方式体积更小。 首先一个完整的RPC模块主要分三部分: 1.服务层(service):RPC接口的定义 阅读全文
posted @ 2018-03-08 09:20 xmj 阅读(623) 评论(0) 推荐(0)
摘要: 我的新浪微博:http://weibo.com/freshairbrucewoo。 欢迎大家相互交流,共同提高技术。 之前对Thrift自动生成代码的实现细节做了详细的分析,下面进行处理层的实现做详细分析了!会利用到自动代码生成的知识。 这部分是协议层和用户提供的服务实现之间的纽带,定义了调用服务实 阅读全文
posted @ 2018-03-08 09:20 xmj 阅读(341) 评论(0) 推荐(0)
摘要: IDL:接口描述语言 这里使用thrift-0.8.0-xsb这个版本来介绍IDL的定义以及简单实例分析。 1. namespace 定义包名 2.struct 结构体,定义服务接口的参数和返回值用到的类结构。基本类型不需要使用struct. 3.service 定义接口:demo.thrift 1 阅读全文
posted @ 2018-03-08 09:19 xmj 阅读(766) 评论(0) 推荐(0)
摘要: 这一层主要是用于实现网络通信,现在都是基于Tcp/Ip,而Tcp/Ip协议栈由socket来实现,换句话说就是现在网络通信服务底层大都是通过socket实现的,在thrift源码中,就是将socket包装成各种transport来使用。 TTransport:这是一个基类,并且是一个抽象类。 TIO 阅读全文
posted @ 2018-03-08 09:18 xmj 阅读(551) 评论(0) 推荐(0)
摘要: 本文为原创:http://www.cnblogs.com/leehfly/p/4958206.html,未经许可禁止转载。 关于Tprotocol层都是一些通信协议,个人感觉内容较大,很难分类描述清楚。故打算以TBinaryProtocol为例,分析客户端发请求以及接收服务端返回数据的整个过程。 先 阅读全文
posted @ 2018-03-08 09:17 xmj 阅读(380) 评论(0) 推荐(0)
摘要: epoll技术前两节已经阐述过了,目前主要做一下封装,很多epoll的服务器都是采用事件回调方式处理, 其实并没有什么复杂的,我慢慢给大家阐述下原理。 在networking.h和networking.cpp里,这两个文件主要实现了一些文件读写功能的回调函数 。 acceptCallBack 负责新 阅读全文
posted @ 2018-03-08 09:15 xmj 阅读(266) 评论(0) 推荐(0)
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 最近在看内存回收,内存回收在进行同步的一些情况非常复杂,然后就想,不会内存压缩的页面迁移过程中的同步关系也那么复杂吧,带着好奇心就把页面迁移的源码都大致看了一遍,还好,不复杂,也容易理解,这里我们就说说在页 阅读全文
posted @ 2018-03-08 09:15 xmj 阅读(543) 评论(0) 推荐(0)
摘要: 前一篇介绍了epoll的LT模式,LT模式注意epollout事件在数据全部写成功后需要取消关注, 或者更改为EPOLLIN。 而这次epoll的ET模式,要注意的是在读和写的过程中要在循环中写完或者读完所有数据, 确保不要丢掉一些数据。 因为epoll ET模式只在两种边缘更改的时候触发,对于读事 阅读全文
posted @ 2018-03-08 09:14 xmj 阅读(139) 评论(0) 推荐(0)
摘要: 网络通信中socket有自己的内核发送缓冲区和内核接受缓冲区,好比是一个水池, 当用户发送数据的时候会从用户缓冲区拷贝到socket的内核发送缓冲区,然后从 socket发送缓冲区发出去, 当用户要读取数据时,就是从socket内核读缓冲区读 到用户缓冲区。所以TCP中recv, send, rea 阅读全文
posted @ 2018-03-08 09:13 xmj 阅读(242) 评论(0) 推荐(0)
摘要: 近期学习了redis底层框架,好多东西之前都没听说过,算是大开眼界了。 先梳理下redis正常的通讯流程吧 首先服务器启动都有主函数main,这个main函数就在redis.c里 首先是initserverconfig(),在这里初始化了redisserver基本的配置信息, 接着调用loadSer 阅读全文
posted @ 2018-03-08 09:12 xmj 阅读(253) 评论(0) 推荐(0)
摘要: 一、前言 个人感觉序列化简单来说就是按一定规则组包。反序列化就是按组包时的规则来接包。正常来说。序列化不会很难。不会很复杂。因为过于复杂的序列化协议会导致较长的解析时间,这可能会使得序列化和反序列化阶段成为整个系统的瓶颈。就像压缩文件、解压文件,会占用大量cpu时间。 所以正常的序列化会在时间和空间 阅读全文
posted @ 2018-03-08 09:11 xmj 阅读(274) 评论(0) 推荐(0)
摘要: 本来这一篇是打算写包头在分布式平台中的具体变换过程的。其实文章已经写好了。但是想了这个应该是不能随便发表的。毕竟如果知道了一个包的具体每个字节的意义。能伪造包来攻击系统。其次来介绍一个包的具体变换过程意义不大。在每个分布式系统的里。包的扭转应该是个有不同。我们着重的应该是一种思想。一种共性。而不是个 阅读全文
posted @ 2018-03-08 09:11 xmj 阅读(233) 评论(0) 推荐(0)
摘要: 首先名字要取得霸气才能吸引人气,哈哈~~ 下面简单介绍下情况。框架是腾讯电商平台的分布式框架。虽然腾讯拍拍已经玩完了。但是这套框架还是很不错的。而且据原腾讯同事说微信也是用的这套框架。源码肯定是不能说的。但是介绍大体的思想我想应该没问题。虽然在这个框架下写了一年多的业务代码。但是平台框架的代码一直没 阅读全文
posted @ 2018-03-08 09:11 xmj 阅读(3706) 评论(0) 推荐(0)
摘要: 本来一篇文章就该搞定的。结果要分上下篇了。主要是最近颈椎很不舒服。同时还在做秒杀的需求也挺忙的。 现在不能久坐。看代码的时间变少了。然后还买了两本治疗颈椎的书。在学着,不过感觉没啥用。突然心里好害怕。如果颈椎病越来越重。以后的路怎么走。 现在上下班有跑步,然后坐一个小时就起来活动活动。然后在跟着同时 阅读全文
posted @ 2018-03-08 09:10 xmj 阅读(345) 评论(0) 推荐(0)
摘要: 每周一篇又来了。这次主要介绍netio的buffer管理器。 首先buffer管理是每一个网络层不可回避的问题。怎么高效的使用buffer是很关键的问题。这里主要介绍下我们的netio是怎么处理。说实话 这是我见过比较蛋疼buffer管理。 反正我是看了好几天 才看明白的。 最近看了下Qcon201 阅读全文
posted @ 2018-03-08 09:09 xmj 阅读(387) 评论(0) 推荐(0)
摘要: IPerf是一个开源的测试网络宽带并能统计并报告延迟抖动、数据包丢失率信息的控制台命令程序,通过参数选项可以方便地看出,通过设置不同的选项值对网络带宽的影响,对于学习网络编程还是有一定的借鉴意义,至少可以玩上一段时间。 IPerf开始出现的时候是在03年,版本是1.7.0,在网上找到的仅有的系列源码 阅读全文
posted @ 2018-03-08 09:08 xmj 阅读(517) 评论(0) 推荐(0)
摘要: 由于需要在项目中增加Websocket协议,与客户端进行通信,不想使用开源的库,比如WebSocketPP,就自己根据WebSocket协议实现一套函数,完全使用C++实现。 代码已经实现,放在个人github上面,地址:https://github.com/jice1001/websocket.g 阅读全文
posted @ 2018-03-08 09:08 xmj 阅读(26775) 评论(5) 推荐(0)
摘要: 对于IPerf源码解析,我是基于2.0.5版本在Windows下执行的情况进行分析的,提倡开始先通过对源码的简单修改使其能够在本地编译器运行起来,这样可以打印输出一些中间信息,对于理解源码的逻辑,程序实现的过程能够起到事半功倍的效果。 IPerf主要分为如下几个模块: 选项参数处理; 线程封装和角色 阅读全文
posted @ 2018-03-08 08:59 xmj 阅读(464) 评论(0) 推荐(0)
摘要: 【线程的生成】 生成线程时需要传入一个thread_Settings类型的变量,thread_Settings包含所有线程运行时需要的信息,命令行选项参数解析后所有得到的属性都存储到该类型的变量中,作为线程生成的传入值能够决定当前线程扮演的角色。 thread_Settings结构中有两个threa 阅读全文
posted @ 2018-03-08 08:58 xmj 阅读(615) 评论(0) 推荐(0)
摘要: 本篇随笔讲述一下TCP协议下,双向测试模式和交易测试模式下客户端和服务端执行的情况; 双向测试模式: 官方文档的解释 Run Iperf in dual testing mode. This will cause the server to connect back to the client on 阅读全文
posted @ 2018-03-08 08:57 xmj 阅读(287) 评论(0) 推荐(0)