abcdef
摘要: typedef _StructTest{ ....}StructTest, *PStructTest;PStructTest pStruct = new StructTestreinterpret_cast<const char*>(&pStruct) // --- 额额额额额已经是一级指针了, 被本挫人引用成二级指针然后再转成一级指针来用, 结果很悲剧, 查了大半天............wwwwwwwwwwwwwwwwwwwww 阅读全文
posted @ 2013-01-30 10:20 jianc 阅读(173) 评论(0) 推荐(0)
摘要: 之前没经验, 发送数据包的时候, 包头包尾等信息都是通过重新定义一个结构体实现, 不同的协议包就有不同的结构体, 结果导致这样的现象: 有多少上层业务协议包, 我就分别重新定义一个对应的加上包头包尾的新的结构体, 很费劲.......额....现在, 重新想了下, 一个改进的方式, 把"封包"过程抽象出来, 使用Qt的QByteArray来操作流数据(还是挺方便的).h#ifndef PACKET_H#define PACKET_H#include <QObject>#include <QByteArray>#define FrontPacket & 阅读全文
posted @ 2013-01-29 16:28 jianc 阅读(4018) 评论(0) 推荐(0)
摘要: 开源协议, 今天才了解到.......................aaaaaaaaaaaaaaaaaaaaaddddddd 阅读全文
posted @ 2013-01-29 14:31 jianc 阅读(160) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2013-01-29 13:36 jianc 阅读(132) 评论(0) 推荐(0)
摘要: 总体思路:这里用select IO模型当接收到网络数据流的时候, 直接把数据丢到一个缓冲区中去这里封装了对缓冲区操作的类, 提供的接口操作包括:1.添加(追加)流数据到缓冲区2.取出缓冲区第一个合法的包(拆掉包头包尾等数据)就两个操作接口, 很简单的操作为了方便操作数据流, 可以用一些现成的容器去处理, 如果用Qt开发, 可以用QByteArray, 如果用VC开发, 可以用stringQt:.hclass DataPack : public QObject{ Q_OBJECTpublic: explicit DataPack(QObject *parent = 0); ... 阅读全文
posted @ 2013-01-28 11:12 jianc 阅读(1946) 评论(0) 推荐(0)
摘要: 连接地址:http://www.codeproject.com/Articles/13370/LiteZip-and-LiteUnzip下载下来, 经过测试, 可以正常解压zip格式的压缩文件, 接口函数很简单, 解压到单前目录, 支持解压文件夹还没细细去测过, 压缩接口函数未测过发现的问题:1.如果解压的文件不存在或不是zip格式, cpu会发飙 --有待继续验证2.如果当前有重名文件或文件夹, 解压时候不知道是否会覆盖 --还没验证3.其他待补充........................... 阅读全文
posted @ 2013-01-24 17:17 jianc 阅读(889) 评论(0) 推荐(0)
摘要: 当要处理一些比较耗时的任务时, 一般是把这些任务放到一个工作线程中去执行, 否则会阻塞界面的响应, 导致用户体验差....所以经常会用到线程从任务角度上看, 线程大致分两类, 界面线程(UI线程, 一般由主线程充当); 工作线程(有UI线程创建, 根据生命周期, 可再细分为长期线程和临时线程)vc中, 创建线程可以通过多种方式, 这里说线程就是一个可以和其他线程"并发"执行的函数, 一个随便写的例子:unsigned __stdcall _netWorkThread(void *pVoid){ cout << "network thread runni 阅读全文
posted @ 2013-01-24 10:24 jianc 阅读(2340) 评论(0) 推荐(0)
摘要: 理由:为了方便得到调试信息, 编写MessageBox弹出消息太挫了, 而且会阻塞线程或者一不小心会弹出n多个小窗口其实也可以用::OutputDebugString配合一个DebugView工具, 感觉又是后也是挺不方便或者直接打日志也行, 但不太直观, 感觉不能"立即"看到效果搜索了下方法, 在GUI程序中调出一个CUI窗口打印调试信息的简单方法:在合适的地方调用如下方法:if(AllocConsole()){ freopen("CONOUT$","w",stdout); cout << "debug...& 阅读全文
posted @ 2013-01-23 14:15 jianc 阅读(457) 评论(0) 推荐(0)
摘要: 封包和拆包(转)对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.自从我 从事网络通讯编程工作以来(大概有三年的时间了),我一直在思索和改进封包和拆包的方法.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之 处,恳求大家指正.在此先谢过大家了.一.为什么基于TCP的通讯程序需要进行封包和拆包.TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想想河里的流水,是连成一片的,其间是没有分界线的.但一般通讯程序开发是需要定 义一个个相互独立的数据包的,比如用于登陆的数据包,用于注销的数据包.由于TCP"流"的特性以及 阅读全文
posted @ 2013-01-21 14:16 jianc 阅读(554) 评论(0) 推荐(0)
摘要: 1.使用某种工具做好一个可启动的u盘pe系统2.连接好u盘, 开始->运行输入命令: diskmgmt.msc, 得到u盘的磁盘号, 假设u盘的盘符为G:, 磁盘号为13.打开cmd, 进入virtual box的安装目录下, 运行命令:VBoxManage.exe internalcommands createrawvmdk -filename g:\usbdisk.vmdk -rawdisk \\.\PhysicalDrive1提示 RAW host disk access VMDK file g:\usbdisk.vmdk created successfully. 表示成功4.打 阅读全文
posted @ 2013-01-14 16:54 jianc 阅读(2989) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示