![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程语言(c/cpp/apue/sql/Enternet)
_暮落_
noobcoder
展开
-
最大传输长度
TCP提供的是一种面向连接的,可靠的字节流服务,TCP提供可靠性的一种重要的方式就是MSS。通过MSS,应用数据被分割成TCP认为最适合发送的数据块,由TCP传递给IP的信息单位称为报文段或段(segment)。代表一个TCP socket的结构体struct tcp_sock中有多个成员用于确定应用数据被分割成最大为多大的数据块较为合适(最大报文段长度MSS)。 我们不难联想到,跟最大原创 2013-04-16 14:29:32 · 1130 阅读 · 0 评论 -
驱动程序需要三个基本文件。
MAKEFILE:所有Windows驱动都有,且完全一样,在DDK例子里找一个就可以用了。 sources:TARGETNAME=BaseDrvTARGETTYPE=DRIVERSOURCES=BaseDrv.c BaseDrv.c:#include VOID DriverUnload( PDRIVER_OBJECT转载 2012-10-24 16:41:32 · 709 阅读 · 0 评论 -
楚狂人--驱动开发基础
本书非常适合熟悉Windows应用编程的读者转向驱动开发。所有的内容都从最基础的编程方法入手。介绍相关的内核API,然后举出示范的例子。这本书只有不到70页,是一本非常精简的小册子。所以它并不直接指导读者开发某种特定类型的驱动程序。而是起到一个入门指导的作用http://www.mayipe.com。即使都是使用C/C++语言的代码,在不同的应用环境中,常常看起来还是大相径庭。比如用Turbo转载 2012-10-23 22:21:49 · 4370 阅读 · 0 评论 -
网络通信—协议详细解析 大致结构
网际层协议:包括:IP协议、ICMP协议、ARP协议、RARP协议。传输层协议:TCP协议、UDP协议。应用层协议:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS。首先介绍一下网络协议:网络协议是网络上所有设备之间通信规则的集合,他定义了通信时信息必须采用的格式和这些格式的意义.大多数网络协议都采用分层体系结,每一层都建立在他的下层之上,转载 2012-10-23 02:07:08 · 762 阅读 · 0 评论 -
cpp自学手册
C++快速自学手册一.面向对象思想Oop思想就是把所有的事物看做对象来处理。然后用类来建创建一个模型。面向对象的三大特征,封装、继承、多态。注释:有的书上写函数 有的书上写方法,他们的意思都是一样的,还有的书上写属性,有的写成员,其实都以一个意思,不要被搞混了。二.C++语法1. 类的写法基本上跟C语言的结构体一样,比c的结构体多了可以写方法(也叫函数)的功能。但是c语言的结构原创 2012-10-23 22:24:31 · 835 阅读 · 0 评论 -
posix 标准定义的头文件
原创 2012-10-23 22:18:45 · 1935 阅读 · 0 评论 -
Windows文件系统过滤驱动开发教程
0. 作者,楚狂人自述我感觉Windows文件系统驱动的开发能找到的资料比较少。为了让技术经验不至于遗忘和引起大家交流的兴趣我以我的工作经验撰写本教程。我的理解未必正确,有错误的地方望多多指教。有问题欢迎与我联系。我们也乐于接受各种驱动项目的开发。邮箱为MFC_Tan_Wen@163.com,QQ为16191935。作者是杭州楚狂人,首先在驱动开发网连载.此版本比驱网连载版本稍转载 2012-10-23 22:25:20 · 1289 阅读 · 0 评论 -
Network Driver Interface Specification 即网络驱动接口规范
本文简单地介绍了NDIS (Network Driver Interface Specification 即网络驱动接口规范),以及应用程序如何与一个驱动程序交互,如何最好地利用驱动程序。作为例子,本文提供了一个应用程序使用Packet.sys的网络 协议层驱动程序的例子,读者在这个例子的基础上可以实现象Netxray等局域网数据包截获程序的功能。 Packet.sys是DDK中的一个非常原创 2012-10-31 00:28:44 · 2494 阅读 · 0 评论 -
linux
Welcome to my blog — ZwelLDo my best…Home2004年08月14日网络编程网络编程本章主要介绍一下网络编程的基本知识。由于书中后面章节都有一些简单的源程序实例来对各章的基本概念进行解释,因此必须具备必要的网络编程知识。在平时工作中,为了查找安全漏洞,也需要编写一些短小精悍的程序来代替复转载 2012-10-31 01:28:39 · 5937 阅读 · 0 评论 -
Linux内核链表定义在include/linux/list.h文件中
链表结构定义struct list_head { struct list_head *next, *prev;};Linux内核链表它是一个双向循环链表,里面只包含两个struct list_head结构指针。1. 链表初始化链表初始化有两种方式:(1)使用LIST_HEAD宏定义个头节点并初始化#define LIST_原创 2012-10-31 00:43:39 · 2856 阅读 · 0 评论 -
文件读写驱动级
// 打开指定文件 HANDLE CKOpenFile( PUNICODE_STRING punFileName ) { HANDLE file_handle = NULL; NTSTATUS status; OBJECT_ATTRIBUTES object_attributes; IO_STATUS_BLOCK io_statu转载 2012-10-24 16:40:23 · 615 阅读 · 0 评论 -
csdn 好文章
说明:为方便朋友们查看本博客的文章,特地整理了本博客中周公认为值得一看的文章,不过有些文章因为年代久远且技术更新快的原因,里面所讲述的方法或者理论不再适合,请大家斟酌。ASP.NET在ASP.NET中使用Highcharts js图表(2011年04月07日)ASP.NET版Memcached监控工具(2011年03月29日)使用Memcached提高.NET应用程序的性能(2原创 2012-11-02 14:12:33 · 2865 阅读 · 0 评论 -
21世纪需要的七种人才—李开复
人才的标准从来都不是一成不变的。在东方的战国时代和西方的骑士时代里,最受器重的是力敌万夫的勇士和巧舌善辩的谋臣;在中国的科举时代里,靠着“死记硬背”和“八股文章”而金榜题名的书生最容易出人头地;在西方工业革命风起云涌的日子里,善于用机器的力量改变世界的发明家以及那些精通专业、埋头苦干的工程师成了所有人才中的佼佼者;即便是在刚刚过去的20世纪中,大多数企业对人才的要求还停留在专注、勤奋、诚实、服从等转载 2012-11-01 14:28:21 · 3226 阅读 · 0 评论 -
获取按键信息
Windows程序都是基于消息设计的。当你按下一个按键,或者点击一下鼠标,都会想操作系统的内核发送一个Irp消息。你只要捕获这个消息,将这个消息复制下,然后将消息放行。将复制的消息传送给你的应用程序。这就是获取键盘按键消息的实现方法。 很多黑客软件获取别人计算的密码,大多也用这种方法。建议广大用户在使用计算机进行输入游戏账号密码或者银行账号密码等,多用软键盘。防止别人通过这种转载 2012-11-19 15:01:50 · 1715 阅读 · 0 评论 -
网页防篡改系统原理
1. 外挂轮询技术外挂轮询技术是利用一个网页检测程序,以轮询方式读出要监控的网页,与真实网页相比较,来判断网页内容的完整性,对于被篡改的网页进行报警和恢复。主要优点:实现、部署简单主要弱点:在网站大的情况下,网页数量巨大,扫描一遍的时间太长,占用系统大量资源。2. 核心内嵌技术核心内嵌技术是将篡改检测模块内嵌在Web服务器软件里,它在每一个网页流出时都进行完转载 2012-11-19 14:00:24 · 6305 阅读 · 0 评论 -
md5加密算法c实现
七分注释 收藏经常到csdn来是查资料,每次都会有所收获。总是看别人的感觉很不好意思,于是决定自己也写一点东西贡献出来。于是就有了这篇md5七分注释。希望对用到的朋友有所帮助。记得当初自己刚开始学习md5的时候,从网上搜了很多关于算法的原理和文字性的描述的东西,但是看了很久一直没有搞懂,搜c的源代码又很少。直到后来学习rsa算法的时候,从网上下了1991年的欧洲的什么组织写的关于rsa转载 2012-11-30 00:43:32 · 1042 阅读 · 0 评论 -
配置使用sqlite
一.使用流程要使用sqlite,需要从sqlite官网下载到三个文件,分别为sqlite3.lib,sqlite3.dll,sqlite3.h,然后再在自己的工程中配置好头文件和库文件,同时将dll文件放到当前目录下,就完成配置可以使用sqlite了。使用的过程根据使用的函数大致分为如下几个过程:sqlite3_open()sqlite3_prepare()sqlite3_step转载 2012-11-08 12:15:56 · 660 阅读 · 0 评论 -
c语言电子书
http://down.51cto.com/data/55806谭浩强c语言PDF版http://down.51cto.com/data/217426C语言经典算法http://down.51cto.com/data/16581121天学通C++(第五版)pdf扫描版http://down.51cto.com/data/217666VC++编程技术600个大型项目文档源原创 2012-11-06 17:00:20 · 2066 阅读 · 0 评论 -
MAKE FILE
Makefile的编写指导概述什么是makefile?或许很多Windows的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefi转载 2012-10-28 00:11:51 · 1491 阅读 · 0 评论 -
HTTP超文本传输协议
2007-11-07 16:28 244人阅读 评论(0) 收藏 举报 一、超文本传输协议及HTTP包 HTTP协议用于在Internet上发送和接收消息。HTTP协议是一种请求-应答式的协议——客户端发送一个请求,服务器返回该请求的应答,所有的请求与应答都是HTTP包。HTTP协议使用可靠的TCP连接,默认端口是80。HTTP的第一个版本是HTTP/0.9,后来发展到了HTTP转载 2012-10-27 23:24:01 · 1036 阅读 · 0 评论 -
串口通信
NDIS 函 数 简 明 手 册无连接微端口的上层函数 DriverEntry 由操作系统调用来激活和初始化微端口驱动程序MiniportAllocateComple 调用它来指示以前调用的NdisMAllocateMemoryAsync已经完成MiniportCheckForHang 检查NIC的内部状态MiniportDisableInterrupt 禁止NIC产生中断MiniportEnab原创 2012-10-27 12:09:53 · 1868 阅读 · 0 评论 -
实战DeviceIoControl 之一:通过API访问设备驱动程序
Q 在NT/2000/XP中,我想用VC编写应用程序访问硬件设备,如获取磁盘参数、读写绝对扇区数据、测试光驱实际速度等,该从哪里入手呢?A 在NT/2000/XP中,应用程序可以通过API函数DeviceIoControl来实现对设备的访问—获取信息,发送命令,交换数据等。利用该接口函数向指定的设备驱动发送正确的控制码及数据,然后分析它的响应,就可以达到我们的目的。DeviceIo转载 2012-10-18 21:50:26 · 493 阅读 · 0 评论 -
IoCreateFile也可以用ZwCreateFile,及二者区别
在内核中我们进行文件操作,可以使用IoCreateFile也可以用ZwCreateFile。 但究竟这两者有什么差别呢?下面是这两个函数的格式如下:NTSTATUSIoCreateFile(OUT PHANDLE FileHandle,IN ACCESS_MASK DesiredAccess,IN POBJECT_ATTRIBUTES ObjectAttributes,OU转载 2012-10-18 04:57:22 · 1490 阅读 · 0 评论 -
多语言开发环境程序
Borland C++ Builder 5.0软件开发的国际化 在Borland C++ Builder 5.0中提供了为应用程序定制不同语言版本的的功能,下面通过具体的例子来说明其实现过程。 1:建立一英文般的窗口,窗口上有两按钮。(Caption= "My Button ",Caption= "OK ") 2:编译,链接程序。 3:关闭程原创 2012-10-18 03:45:01 · 802 阅读 · 0 评论 -
ontimer and settimer 定时执行程序
关于OnTimer()函数的填写,对于CDialog,可以Ctrl+W中添加; 对于SetTimer可以在初始化当中添加! OnTimer()函数是响应用SetTimer()函数设定的时钟发送的时钟消息的,你没设定时钟,就不会有时钟消息,OnTimer()里的语句当然也不会被调用。 为类添加VM_TIMER消息响应,会看到类中多了个OnTimer(UINT nIDEvent)。 然后用SetTim转载 2012-10-12 06:41:06 · 950 阅读 · 0 评论 -
指针 没看完 需要时再用
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int*ptr; (2)char*ptr; (3)int**ptr; (4)int(*ptr)[3]; (5)i转载 2012-09-29 12:45:20 · 837 阅读 · 0 评论 -
c与c++区别
1. C++虽然主要是以C的基础发展起来的一门新语言,但她不是C的替代品,不是C的升级,C++和C是兄弟关系。没有谁比谁先进的说法,更重要的一点是C和C++各自的标准委员会是独立的,最新的C++标准是C++98,最新的C标准是C99.因此也没有先学C再说C++的说法,也不再(注意这个"不再")有C++语法是C语法的超集的说法。 2. C++/CLI 和 C# 是微软的,它们与C和C++没原创 2012-02-16 13:02:07 · 555 阅读 · 0 评论 -
用GDB调试程序
GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可转载 2012-02-22 13:06:04 · 377 阅读 · 0 评论 -
5种方式比较排序
排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。 内部排序和外部排序: 若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序; 反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。 内部排序的过程是一个逐步扩大记录的有序序列长度的过程。原创 2012-02-15 17:36:34 · 832 阅读 · 0 评论 -
资料—链表 c中错误指示翻译
单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。 动态单链表单向链表的数据结构可以分为两部分:数据域和指针域,数据域存储数据,指针域指向下一个储存节点的地址。/*線性表的單鏈表存儲结構*/typedef struct LNode{ ElemType data; struct LNode *next;}LNod原创 2012-02-15 14:59:35 · 2226 阅读 · 0 评论 -
哈弗曼 树 实现 文件压缩 代码
可用哈夫曼压缩文件,程序如下:#include #include #include #include struct head {unsigned char b; //记录字符在数组中的位置 //四个字节long count; //字符出现频率(权值) long parent,lch,r原创 2012-02-15 14:54:04 · 1967 阅读 · 2 评论 -
空指针2
帖子里讨论了C语言中的空指针、空指针常量、NULL、0等概念及相互关系及区别。这里摘录whyglinux兄的总结。做个标签,呵呵^_^什么是空指针常量(null pointer constant)?[6.3.2.3-3] An integer constant expression with the value 0, or such an expression ca转载 2012-02-15 14:52:31 · 685 阅读 · 0 评论 -
空指针
首先: void* 这不叫空指针,这叫无确切类型指针.这个指针指向一块内存,却没有告诉程序该用何种方式来解释这片内存.所以这种类型的指针不能直接进行取内容的操作.必须先转成别的类型的指针才可以把内容解释出来. 还有'\0',这也不是空指针所指的内容. '\0'是表示一个字符串的结尾而已,并不是NULL的意思. 真正的空指针是说,这个指针没有指向一块有意义的内存,比如说: char* k; 这里这个转载 2012-02-15 14:02:06 · 1109 阅读 · 0 评论 -
编程语言中的冒号【 超详细解释】无私奉献
c++中冒号(:)和双冒号(::)的用法标签: 无标签C语言中冒号的一种用法C语言中冒号的一种用法(摘自网络)这是C语言位域问题有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字原创 2012-10-12 06:21:58 · 8107 阅读 · 0 评论 -
防火墙驱动原理
ICMP包的格式 IP数据包的源主机经过本机的数据链路层把IP包发送到物理网络,之后就是陆游器来完成。ICMP协议负责差错控制和报文控制。 ICMP包分为报文头+数据两个部分。 IP = IP报文头+ IP数据; IP数据 = ICMP报文头 + ICMP数据 所有 IP包 = IP报文头 + ICMP报文头 + ICMP数据 miniport.c里面有mpsend转载 2012-10-17 14:40:36 · 907 阅读 · 0 评论 -
HTTP_FILTER_CONTEXT结构具有如下形式:
HTTP_FILTER_CONTEXT结构具有如下形式:typedef struct _HTTP_FILTER_CONTEXT{ DWORD cbSize; //IN DWORD Revision; //IN PVOID ServerContex原创 2012-10-17 22:21:05 · 1414 阅读 · 0 评论 -
套接字 通信域 domain
Unix Domain Socket 基本流程Unix Domain Socket 基本流程利用 Unix Domain Socket 进行通信的基本流程如下图所示:基本流程socketsocket() creates an endpoint for communication and returns a descriptor.bindbin转载 2012-10-17 14:33:53 · 1369 阅读 · 0 评论 -
注册表
win+r输入regedit进入 Windows注册表是帮助Windows控制硬件、软件、用户环境和Windows界面的一套数据文件,注册表包含在Windows目录下两个文件system.dat和user.dat里,还有它们的备份system.da0和user.da0。通过Windows目录下的regedit.exe程序可以存取注册表数据库。在以前,在windows的更早版本(在Win95以前)原创 2012-10-18 05:20:01 · 920 阅读 · 0 评论 -
驱动对象处理-狂人楚
7.1 驱动入口与驱动对象驱动开发程序员所编写的驱动程序对应有一个结构。这个结构名为DRIVER_OBJECT。对应一个“驱动程序”。下面的代码展示的是一个最简单的驱动程序。#include NTSTATUSDriverEntry ( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING Registry转载 2012-10-18 04:31:38 · 1391 阅读 · 0 评论 -
win 驱动开发 内存链表图解
Windows内存管理(1)--分配内核内存 和 使用链表 1. 分配内核内存Windows驱动程序使用的内存资源非常珍贵,分配内存时要尽量节约。和应用程序一样,局部变量是存放在栈空间中的。但栈空间不会像应用程序那么大,所以驱动程序不适合递归调用或者局部变量是大型数据结构。如果需要大型数据结构,我们可以在堆中申请。堆中申请的函数有以下几个:(1)PVOI转载 2012-10-18 04:28:22 · 1188 阅读 · 0 评论