2014年8月29日

windows的磁盘操作之二——初始化磁盘

摘要: 上一节中我们介绍了一些基本概念和主要的API,本节开始我们将列举并分析一些实例。本文中的所有代码我都在vs2008下测试过,读者只需要替换少量的宏定义即可编译执行。 面对一块新的磁盘,我们首先要做的就是对其初始化。在系统中通过windows的磁盘管理完成这一点非常容易,但在程序中实现略微复杂。本节的... 阅读全文

posted @ 2014-08-29 15:58 柴科夫斯不是基 阅读(1056) 评论(0) 推荐(0) 编辑

windows的磁盘操作之一——基本概念

摘要: 最近项目中需要在windows系统下与磁盘打交道,用了一个礼拜时间,弄懂了一些基本的概念,记录于此,并以项目中的部分代码作为范例。 首先说明一点,本文中使用的不是cmd命令行,基于以下几点原因: 1.在C/C++中调用系统命令会存在处理的种种不方便,需要大量额外的代码去分析命令执行结果。 ... 阅读全文

posted @ 2014-08-29 15:55 柴科夫斯不是基 阅读(685) 评论(0) 推荐(0) 编辑

windows的磁盘操作之一——基本概念

摘要: 最近项目中需要在windows系统下与磁盘打交道,用了一个礼拜时间,弄懂了一些基本的概念,记录于此,并以项目中的部分代码作为范例。首先说明一点,本文中使用的不是cmd命令行,基于以下几点原因:1.在C/C++中调用系统命令会存在处理的种种不方便,需要大量额外的代码去分析命令执行结果。2.window... 阅读全文

posted @ 2014-08-29 15:55 柴科夫斯不是基 阅读(315) 评论(0) 推荐(0) 编辑

cJSON

摘要: 优点:cJSON只有cJSON.h和cJSON.c两个文件、600行代码可以直接加到工程项目中,不必编译成库使用。 结论:优先使用cJSON cJSON结构: /* The cJSON structure: */typedef struct cJSON { struct cJSON *ne... 阅读全文

posted @ 2014-08-29 14:58 柴科夫斯不是基 阅读(522) 评论(0) 推荐(0) 编辑

cJSON

摘要: 优点:cJSON只有cJSON.h和cJSON.c两个文件、600行代码可以直接加到工程项目中,不必编译成库使用。结论:优先使用cJSONcJSON结构:/* The cJSON structure: */typedef struct cJSON { struct cJSON *next,*prev... 阅读全文

posted @ 2014-08-29 14:58 柴科夫斯不是基 阅读(392) 评论(0) 推荐(0) 编辑

2014年8月27日

IOCP八:同时发送一个buffer

摘要: 实验过程: 1.Server端将19.4M的mfc.zip文件装入全局变量buffer 2.一次投递100个接受连接 3.Client创建num个线程连接Server 4.连接到来后,所有的worker将发送指针指向同一缓冲区(即b... 阅读全文

posted @ 2014-08-27 17:53 柴科夫斯不是基 阅读(346) 评论(0) 推荐(0) 编辑

IOCP八:同时发送一个buffer

摘要: 实验过程: 1.Server端将19.4M的mfc.zip文件装入全局变量buffer 2.一次投递100个接受连接 3.Client创建num个线程连接Server 4.连接到来后,所有的worker将发送指针指向同一缓冲区(即buffer)... 阅读全文

posted @ 2014-08-27 17:53 柴科夫斯不是基 阅读(188) 评论(0) 推荐(0) 编辑

2014年8月26日

IOCP七:同时发送

摘要: 实验过程: 1.Server等待连接到来,Client连接进入 2.某线程处理Client的连接请求,完成后在对应socket上投3个WSASend 发送内容"nihao from + 当前线程ID + \r\n" 3.WSA... 阅读全文

posted @ 2014-08-26 20:17 柴科夫斯不是基 阅读(192) 评论(0) 推荐(0) 编辑

IOCP七:同时发送

摘要: 实验过程: 1.Server等待连接到来,Client连接进入 2.某线程处理Client的连接请求,完成后在对应socket上投3个WSASend 发送内容"nihao from + 当前线程ID + \r\n" 3.WSASend完成后... 阅读全文

posted @ 2014-08-26 20:17 柴科夫斯不是基 阅读(154) 评论(0) 推荐(0) 编辑

send和recv (大文件传输)

摘要: 实验环境: Windows 实验目的: 使用socket传输大文件(19.4M) 实验过程: 第一阶段 1.Server使用send(s,buffer,dataLen,0)将文件装入buffer一次发送出去 结果:... 阅读全文

posted @ 2014-08-26 19:38 柴科夫斯不是基 阅读(255) 评论(0) 推荐(0) 编辑

send和recv (大文件传输)

摘要: 实验环境: Windows实验目的: 使用socket传输大文件(19.4M)实验过程: 第一阶段 1.Server使用send(s,buffer,dataLen,0)将文件装入buffer一次发送出去 结果:成功 2... 阅读全文

posted @ 2014-08-26 19:38 柴科夫斯不是基 阅读(1997) 评论(0) 推荐(0) 编辑

摘要: 1.自动锁 #ifndef AUTO_LOCK_H#define AUTO_LOCK_H#include "defines.h"class AutoLock{public: AutoLock(HANDLE &mtx) : mutex(mtx) { WaitForSingleObject(mu... 阅读全文

posted @ 2014-08-26 13:41 柴科夫斯不是基 阅读(150) 评论(0) 推荐(0) 编辑

查询系统和进程状态信息

摘要: windows C++ 1. 系统CPU利用率 理论支持 1.CPU利用率:CPU工作时间与总时间的比值。 2.Windows下任务管理器CPU利用率的由来: a.CPU使用率:在任务管理器的刷新周期内CPU工作时间与刷新周期的比值。 b.任务管理器默... 阅读全文

posted @ 2014-08-26 13:41 柴科夫斯不是基 阅读(223) 评论(0) 推荐(0) 编辑

摘要: 1.自动锁#ifndef AUTO_LOCK_H#define AUTO_LOCK_H#include "defines.h"class AutoLock{public: AutoLock(HANDLE &mtx) : mutex(mtx) { WaitForSingleObject(mutex,... 阅读全文

posted @ 2014-08-26 13:41 柴科夫斯不是基 阅读(107) 评论(0) 推荐(0) 编辑

查询系统和进程状态信息

摘要: windows C++ 1. 系统CPU利用率理论支持1.CPU利用率:CPU工作时间与总时间的比值。2.Windows下任务管理器CPU利用率的由来: a.CPU使用率:在任务管理器的刷新周期内CPU工作时间与刷新周期的比值。 b.任务管理器默认的刷新周期是1s。3.w... 阅读全文

posted @ 2014-08-26 13:41 柴科夫斯不是基 阅读(291) 评论(0) 推荐(0) 编辑

IOCP

摘要: 1.IOCP自动维护worker线程,没必要将worker组织为线程池,即不采用IOCP+线程池 2. lpCompletionKey与File Handle关联,每当File Handle上的请求完成时lpCompletionKey都会随IO完成包出现在完成队列。 File Handle出... 阅读全文

posted @ 2014-08-26 10:36 柴科夫斯不是基 阅读(143) 评论(0) 推荐(0) 编辑

IOCP

摘要: 1.IOCP自动维护worker线程,没必要将worker组织为线程池,即不采用IOCP+线程池 2.lpCompletionKey与File Handle关联,每当File Handle上的请求完成时lpCompletionKey都会随IO完成包出现在完成队列。File Handle出现问题,之前... 阅读全文

posted @ 2014-08-26 10:36 柴科夫斯不是基 阅读(143) 评论(0) 推荐(0) 编辑

2014年8月19日

《windows程序设计》笔记

摘要: 1.要定义包含一个宽字符的变量,可使用下面的语句: wchar_t c = 'A' 变量c是一个双字节值0x0041,是Unicode表示的字母A。(然而,因为Intel微处理器从最小的字节开始储存多字节数值,该字节实际上是以0x41、0x00的顺序保存在内存中。) ... 阅读全文

posted @ 2014-08-19 11:15 柴科夫斯不是基 阅读(137) 评论(0) 推荐(0) 编辑

《windows程序设计》笔记

摘要: 1.要定义包含一个宽字符的变量,可使用下面的语句: wchar_t c = 'A' 变量c是一个双字节值0x0041,是Unicode表示的字母A。(然而,因为Intel微处理器从最小的字节开始储存多字节数值,该字节实际上是以0x41、0x00的顺序保存在内存中。)指向宽字符... 阅读全文

posted @ 2014-08-19 11:15 柴科夫斯不是基 阅读(128) 评论(0) 推荐(0) 编辑

2014年7月31日

IOCP六:UDP 客户端退出

摘要: 实验过程: 1.线程A在socket s上投递1号WSARecvFrom 2.Client发送"woyougexiaozhinv,kewoburenshita" 3.1号WSARecvFrom接收数据,创建线程B 4.线程B投递2号... 阅读全文

posted @ 2014-07-31 20:14 柴科夫斯不是基 阅读(210) 评论(0) 推荐(0) 编辑

IOCP六:UDP 客户端退出

摘要: 实验过程: 1.线程A在socket s上投递1号WSARecvFrom 2.Client发送"woyougexiaozhinv,kewoburenshita" 3.1号WSARecvFrom接收数据,创建线程B 4.线程B投递2号WSARec... 阅读全文

posted @ 2014-07-31 20:14 柴科夫斯不是基 阅读(335) 评论(0) 推荐(0) 编辑

IOCP五:UDP线程退出

摘要: 我也不多讲么东西了,你个狗一样的人也不用多讲么。 UDP的基本步骤: 1.创建socket s,绑定到本地地址和端口。 2.创建IOCP,为s创建PER_HANDLE_DATA,将s关联到IOCP。 3.在s上投递多个WSARecvFrom,当... 阅读全文

posted @ 2014-07-31 18:47 柴科夫斯不是基 阅读(566) 评论(0) 推荐(0) 编辑

IOCP五:UDP线程退出

摘要: 我也不多讲么东西了,你个狗一样的人也不用多讲么。UDP的基本步骤: 1.创建socket s,绑定到本地地址和端口。 2.创建IOCP,为s创建PER_HANDLE_DATA,将s关联到IOCP。 3.在s上投递多个WSARecvFrom,当有数据到来时,W... 阅读全文

posted @ 2014-07-31 18:47 柴科夫斯不是基 阅读(205) 评论(0) 推荐(0) 编辑

IOCP四:己方closesocket

摘要: 实验一 实验过程: 1.在socket s上投递WSARecv等待接收数据 2.Client发送数据 3.WSARecv成功接收 4.在s上投递WSASend进行数据发送 5.Client成功接收到数据 ... 阅读全文

posted @ 2014-07-31 18:07 柴科夫斯不是基 阅读(579) 评论(0) 推荐(0) 编辑

IOCP四:己方closesocket

摘要: 实验一实验过程: 1.在socket s上投递WSARecv等待接收数据 2.Client发送数据 3.WSARecv成功接收 4.在s上投递WSASend进行数据发送 5.Client成功接收到数据 6.Serve... 阅读全文

posted @ 2014-07-31 18:07 柴科夫斯不是基 阅读(398) 评论(0) 推荐(0) 编辑

导航