`
文章列表
本人CSDN博客地址:http://blog.csdn.net/hzdiy/article/details/8694642 处理多线程数据共享问题注意的几个要点: 1、锁竞争:尽量减少锁竞争的时间和次数。 2、内存:尽量是使用已分配内存,减少内存分配和释放的次数。尽量是用连续内 ...
IOCP中在WSASend以及WSARecv的时候出现WSA_IO_PENDING情况的说明 网络编程 2010-08-11 11:05:53 阅读293 评论0   字号:大中小 订阅 应该是windows网络编程第二版里面提到过。现在整理一下。 1:在IOCP中投递WSASend返回WSA_IO_PENDING的时候,表示异步投递已经成功,但是稍后发送才会完成。这其中涉及到了三个缓冲区。 网卡缓冲区,TCP/IP层缓冲区,程序缓冲区。 情况一:调用WSASend发送正确的时候(即立即返回,且没有错误),TCP/IP将数据从程序缓冲区中拷贝到TCP/IP层缓冲区中,然后不锁定该程序缓冲区,由 ...
WinSock2编程之打造完整的SOCKET池 IOCP编程 2010-02-15 22:46:34 阅读592 评论5   字号:大中小 订阅 在Winodows平台上,网络编程的主要接口就是WinSock,目前大多数的Windows平台上的WinSock平台已经升级到2.0版,简称为WinSock2。在WinSock2 ...
开心codinghttp://www.52iocp.com/ 1. IOCP发送大数量的问题 2. IOCP发送大数量的问题 有A,B两块数据,如AB两块数据,如果A数据比较大,异步只发送了一部分就返回了,B数据已经提交,¬这时候再发A剩下的部分就乱顺序了 ,该 ...
关于完成端口(IOCP)的文章汇总 - [C/C++] 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://joshuafan.blogbus.com/logs/32007489.html 首先讨论一下I/O Completion Ports试图解决什么样的问题。 写一个IO Intensive服务器程序,对每一个客户请求生成一个新的child process/worker thread来处理,每个process/thread使用同步IO,这是最经典古老的解法了。在这之上的改进是prefork 多个process 或者使用线程池。(使用process或thr ...
VC++实现对远程计算机屏幕的监视 CND8学院 VC教程 发布日期:2009年06月18日 将本文收藏到: | 收藏到本地 | 复制本文地址 --------------------------------------------------------------------------------   对远程计算机屏幕的捕捉和显示   前面部分的工作只是为整个监控系统提供一个低层的网络数据通讯的能力,也可以说是为现场主机和监控中心提供一个通信用信道。至于本文的中心议题--远程监视工作则需要分别在现场主机和监控中心中完成对屏幕的捕捉和信息的再现。屏幕的捕捉可以采取先获取桌面窗口指针 ...
HBITMAP hCaptureBitmap = CopyScreenToBitmap(0, 1024,0, 768); CBitmap*   pBmp   =   CBitmap::FromHandle(hCaptureBitmap); int Count; BITMAP bm;     pBmp->GetObject(sizeof(bm),&bm); Count = bm.bmWidthBytes * bm.bmHeight; //得到buf大小 BYTE *b=new BYTE[Count]; pBmp->GetBitmapBits(Count,b); HDC h ...
远程控制软件需要解决的问题: 1、本地图像获取   已解决 2、图像传输,运用UDP进行发送 3、服务器运用IOCP进行,编写TCP,UDP两种数据包发送途径。 TCP:已经解决 4、模拟鼠标、模拟键盘操作。 5、聊天功能
异步IO.APC.IOCP.线程池 异步IO、APC、IO完成端口、线程池与高性能服务器之一 异步IO 同步文件IO和异步文件IO 下面摘抄于MSDN《synchronous file I/O and asynchronous file I/O》。 有两种类型的文件IO同步:同步文件IO和异步文件IO。异步文件IO也就是重叠IO。 在同步文件IO中,线程启动一个IO操作然后就立即进入等待状态,直到IO操作完成后才醒来继续执行。而异步文件IO方式中,线程发送一个IO请求到内核,然后继续处理其他的事情,内核完成IO请求后,将会通知线程IO操作完成了。     如果IO请求需要大量 ...
WaitForSingleObject的用法(2006-10-7 12:35:00) 【收藏】 【评论】 【打印】 【关闭】 WaitForSingleObject 的用法                     WaitForSingleObject的用法 DWORD WaitForSingleObject(   HANDLE hHandle,   DWORD dwMilliseconds ); 参数hHandle是一个事件的句柄,第二个参数dwMilliseconds是时间间隔。如果时间是有信号状态返回WAIT_OBJECT_0,如果时间超过dwMilliseconds值但 ...
CONTAINING_RECORD macro之研究 分享 标签: CONTAINING_RECORD  结构地址  分类: 语言的魅力 2007-10-19 01:38 CONTAINING_RECORD macro 之研究 #define CONTAINING_RECORD(address, type, field) ((type *)( \ (PCHAR)(address) - \ (ULONG_PTR)(&((type *)0)->field))) 这个宏的目的是 当我们知道某一个 C struct 内的某个field 的 address,我们就可以反推回含有这个 ...
如何优雅地关闭一个socket 收藏     最近在windows编程时需要考虑到“如何优雅地关闭一个socket”,查阅了一些资料,现将查到的相关资料做个汇编,希望能对后来者有所帮助(比较懒,所以英文资料没有翻译:-)) 1. 关闭Socket时究竟做了什么     关闭socket分为主动关闭(Active closure)和被动关闭(Passive closure)两种情况。前者是指有本地主机主动发起的关闭;而后者则是指本地主机检测到远程主机发起关闭之后,作出回应,从而关闭整个连接。     其状态图如下图所示:       起初每个socket都是CLOSED状态,当客户端初使化 ...
setsockopt 设置socket 详细用法 1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddr=TRUE; setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL)); 2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经历 TIME_WAIT的过程: BOOL bDontLinger = FALSE; setsockopt(s,SOL_SOCKET,SO_DONTL ...
IocpServer2.rar  Iocp服务器端 TcpClient.rar    测试客户端 vs2003编译
记住15句话让你活得更好 1、说话要用脑子,做事慎言,话多无益,嘴只是一件扬声器而已,平时一定要注意监督、控制好调频旋钮和音控开关,否则会给自己带来许多麻烦。讲话不要只顾一时痛快、信口开河,以为人家给你笑脸 ...
Global site tag (gtag.js) - Google Analytics