- 博客(14)
- 资源 (20)
- 收藏
- 关注
转载 线程句柄作WaitForSingleObject的参数是什么意思?
[cpp] view plaincopy#include #include DWORD WINAPI Fun1Proc(LPVOID lpParameter); int main() { HANDLE hThread1; hThread1 = CreateThread(NULL, 0, Fun1
2015-01-28 11:22:39 1578
原创 Visual C++线程同步技术剖析:临界区,事件,信号量,互斥量
转自:使线程同步 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。 如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误了解。例如,多个线程同时访问同一个全局变量,如果
2015-01-28 11:14:10 1391
转载 端口重用(如何解除bind绑定)
[socket]如何解除绑定bind()?我找的关于setsockopt的资料:1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCK
2015-01-27 10:11:32 8909 1
原创 MFC socket编程(浅出+深度:服务端和客户端端口问题)
要写网络程序就必须用Socket,这是程序员都知道的。而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,write等几个基本的操作。是的,就跟常见的文件操作一样,只要写过就一定知道。 对于网络编程,我们也言必称TCP/IP,似乎其它网络协议已经不存在了。对于TCP/IP,我们还知道TCP和UDP,前者可以
2015-01-16 11:53:19 2616
原创 MFC中CAsyncSocket及其派生类对象跨线程使用方法
MFC中CAsyncSocket及其派生类对象跨线程使用方法存在的现象在MFC中用多线程方法开发WinSocket通讯程序时,如果你的的是API方式,自然没有以下说的问题。但如果当你使用CAsyncSocket及其派生类(CSocket或是你自己的写的)来开发的话,会发现在不同线程中使用CAsyncSocket及其派生类对象时,会出现程序崩溃。这里所说的跨线程,是指该对象在一个线程中调用C
2015-01-15 15:39:06 1457
转载 MFC疑难注解:CAsyncSocket及CSocket
MFC对SOCKET编程的支持其实是很充分的,然而其文档是语焉不详的。以至于大多数用VC编写的功能稍复杂的网络程序,还是使用API的。故CAsyncSocket及CSocket事实上成为疑难,群众多敬而远之。余好事者也,不忍资源浪费,特为之注解。一、CAsyncSocket与CSocket的区别前者是异步通信,后者是同步通信;前者是非阻塞模式,后者是阻塞模式。另外,异步非阻塞模式有
2015-01-15 10:33:23 910
原创 Csocket基本原理
我通过几个采用 CSocket 类编写并基于 Client/Server (客户端 / 服务端)的网络聊天和传输文件的程式 ,在调试这些程式的过程中,追踪深入至 CSocket 类核心源码 SockCore.cpp , 对于CSocket 类的运行机制可谓是一览无遗,并且对于阻塞和非阻塞方式下的 socket 程式的编写也是稍有体会。阅读本文请先注意 :• 这里的阻塞和非阻塞的
2015-01-15 10:14:11 919
转载 进程间通信 - 动态链接库实现
引子前面介绍的几种用于实现进程之间通信的方法都是比较正统的方式,像剪贴板,命名管道这些都还是用得比较多的,而这里将介绍的是一种比较偏门的方法来实现进程间的通信,所谓偏门呢,自然就是用的少,能够不用就不要使用。其实这种方法就是通过动态链接库来实现进程间的通信。 动态链接库(DLL)概述
2015-01-12 16:49:52 934
转载 进程间通信 - 命名管道实现
引子好,到这里呢,就需要介绍实现进程间通信的第四种方式了,也就是通过命名管道来实现,前面介绍的那三种方式呢,都是有缺陷或者说局限性太强,而这里介绍的命名管道相对来说,在这方面就做得好很多了,比如,剪贴板的话只能实现本机上进程之间的通信,而邮槽的话虽然是可以实现跨网络之间的进程的通信,但麻烦的是邮槽的服务端只能接收数据,邮槽的客户端只能发送数据,太悲剧
2015-01-12 16:49:16 1422
转载 进程间通信 - 匿名管道实现
引子前面的两篇博文分别介绍了通过剪贴板和通过邮槽来实现进程之间的通信,其中剪贴板呢,是用来实现本地两个进程之间的通信,而邮槽则既可以实现本地两个进程之间的通信,也可以实现本地进程和服务器进程的通信,当然,上面这两种方式都是有局限性的,比如剪贴板就只能实现本地进程之间的通信,而在邮槽中,虽然是既可以实现本地进程之间的通信,又能实现本地进程和远程服务器进程的通信
2015-01-12 16:47:42 1907 1
转载 进程间通信 - 邮槽实现
引子前面的一篇博文介绍了进程之间通信的一种最为简单的方式,也就是在本地进程之间通过剪贴板来实现进程间通信,而剪贴板自有其缺陷,很显然的是,剪贴板只能在本地机器上实现,无法实现本地进程与远程服务器上的进程之间的通信,那么有没有办法实现本地进程和远程进程的通信呢?办法自然是有的,要是实在搞不出,我拿 Socket 来实现本地进程和远程进程的通信来
2015-01-12 16:46:08 905
转载 进程间通信 - 剪贴板实现
引子由于在启动一个进程后,操作系统会给这个进程分配 4GB 的私有地址空间,至于为何有 4GB 这么大,那得考虑进程的私有地址空间和实际物理内存地址空间之间的映射以及页交换等等细节问题了,这里不予讨论,从名字就可以知道,既然操作系统给每一个进程分配的是私有地址空间,自然,这段地址空间也只有这个进程自己才能访问了,不然还称为私有干吗呢?既然这段私有地址空间只能
2015-01-12 16:42:56 739
转载 OpenGL常识汇总
主题:这里将收集一些OpenGL中的常识。在日常生活中,我们积累生活常识越多,我们的生活就会越方便。同样的道理,如果我们积累的OpenGL常识越多,我们的开发过程就会越轻松。当列举这些常识的时候,我会尽量找到充分的,权威的资料去证明常识的正确性。通常情况下,我会摘抄经典书籍中的原话作为证据。闲话少数,现在就开始吧。1.坐标系在计算机图形学中有关于坐标系的内容。常见的三维坐标系有两种:左
2015-01-06 16:02:04 1088
转载 关于Opengl各种矩阵变换(MVPW)的自我理解
关于Opengl各种矩阵变换的理解OpenGL的矩阵变换一直比较迷糊,貌似懂了又貌似不懂,今天貌似懂了过几天又貌似忘记怎么回事了,还是没有理解透彻,因此痛下决心,一定要把这个事情弄懂。经过几天的反复思考查看资料,我自己理解的结果就是:mv用来调整相机位置组成一个新坐标系,p用来在这个坐标系里面切出一块来变成-1,1之间的立方体显示,w用来把这个-1,1的立方体转到指定的视口上。如果这个不够
2015-01-06 12:27:02 5149
如何写一个批处理文件.dat.cmd
2016-01-18
C#调用MFC带窗口的Dll源代码
2015-09-11
sqlserver2008数据库实例练习
2012-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人