2011年8月20日

摘要: .............. 阅读全文
posted @ 2011-08-20 00:50 我要穿越 阅读(438) 评论(0) 推荐(0) 编辑

2011年8月18日

摘要: 进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,我这里仅对 像ICQ一类的发送聊天消息的情况作分析,对于其他情况,你或许也能得到一点帮助: 首先,我们知道,TCP/IP通常被认为是一个四层协议系统,包括链路层,网络层,运输层,应用层. UDP属于运输层,下面我们由下至上一步一步来看: 以太网(... 阅读全文
posted @ 2011-08-18 23:03 我要穿越 阅读(274) 评论(2) 推荐(1) 编辑
摘要: 琢石成器那本书看来的 572页 //全信书 不如不信书 不知道你们信不信 反正我是信了 同步和异步的不同 是取决于缓冲区的大小个发送数据大小 TCP send 同步: 当端口缓冲区不管是否能容下发送内容 都是发送完所有数据都 返回 异步 :当能容下发送数据的时候,发送全部数据后返回返回发送数据大小; 当缓冲区不能容下全部数据的时候,把能容下数据填入后返回 ,返回值是填入数据的大小 当缓冲区满的... 阅读全文
posted @ 2011-08-18 16:10 我要穿越 阅读(306) 评论(0) 推荐(0) 编辑

2011年8月17日

摘要: 前段时间使用VC6中STRING,VECTOR时DEBUG模式出现的警告, 大概判断应该是调试时一些类调用后导致名字过长,超过了255个字符,产生, 今天网上找了下,问题是因为VC6对STL的一些不完全支持造成,手工屏蔽就可以。 方法为在源文件头部加入一下预编译代码 #ifdef WIN32 #pragma warning (disable: 4514 4786) #endif 问题解决。 今天也... 阅读全文
posted @ 2011-08-17 18:59 我要穿越 阅读(590) 评论(0) 推荐(0) 编辑

2011年8月16日

摘要: 结构 { IO缓冲区 其他一些结构 } 这种就是发生了粘包 这里我是点了2次发送信息 然后断点停掉客户端 不让他马上处理 发生这样一次在接到了77个字符 如果还有按我目前的字符串处理 这样就必要进程粘包处理 阅读全文
posted @ 2011-08-16 21:56 我要穿越 阅读(125) 评论(0) 推荐(0) 编辑
摘要: TCP的流方式 TCP有缓冲区 8K or 4K 缓冲区如果满了的话 在发送 这样如果小数据的话 多次久会粘再一起 无法分清楚几个包 数据的是远远不断得过来 想办法分开这些数据就就可以了 所以建立个协议 规定一下包的结构 包类型 : 具体是干什么的 包SIZE :包的大小 随后而来的数据流中 读取多少个字节 读完这个包以后 就是下一个包了 阅读全文
posted @ 2011-08-16 19:29 我要穿越 阅读(164) 评论(0) 推荐(0) 编辑

2011年8月12日

摘要: 全局的如果卸载HOOK 其他进程中的DLL全部退出 WM_GETMESSAGE 只是起到监视作用 而且MESSAGEBOX都拦不住 阅读全文
posted @ 2011-08-12 19:11 我要穿越 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 摘译自Win32 Hooks 作者:Kyle Marsh 本文描述钩子及其子MS Win32应用编程接口中的使用,讨论钩子函数、 过滤函数、以及以下类型的钩子: WH_CALLWNDPROC WH_CBT WH_DEBUG WH_FOREGROUNDIDLE WH_GETMESSAGE WH_JOURNALPLAYBACK WH_JOURNALRECORD WH_KEYBOARD WH_MOUS... 阅读全文
posted @ 2011-08-12 14:00 我要穿越 阅读(2316) 评论(1) 推荐(0) 编辑

2011年8月9日

摘要: 这2个函数都是强制退出线程和进程 最大的特点是 不会返回 进去就出不来了 如果终结主线程 比如在主线程中C/C++申请对象 得不到正确的释放 应该调用_endthreadex 在线程内申请的局部变量 不会析构 核心编程EXITPROCESS Code#include <iostream.h>#include <process.h>#include <stdlib.h>#include <windo... 阅读全文
posted @ 2011-08-09 22:36 我要穿越 阅读(239) 评论(0) 推荐(0) 编辑

2011年8月8日

摘要: 在做DWORD与 CString 比较的时候 ,需要将CString 转换成 DWORD,有几种转换方法,但是明明转换结果是一样的,可就是提示不相等,后来 _tcstoul()转换后才相等 ,记录下 CString str = lp->GetSubItem(nCol); // MessageBox(str,m_strItem,MB_OK); DWORD dwData = _tcstoul( ... 阅读全文
posted @ 2011-08-08 23:09 我要穿越 阅读(2871) 评论(0) 推荐(1) 编辑

导航