摘要: 匿名管道概述 匿名管道就是没有名字的管道了,还有一种管道呢,叫做命名管道。 在本地机器上可以使用匿名管道来实现父进程和子进程之间的通信,这里需要注意两点,第一就是在本地机器上,这是因为匿名管道不支持跨网络之间的两个进程之间的通信,第二就是实现的是父进程和子进程之间的通信,而不是任意的两个进程。说了这么多,到底怎么使用匿名管道呢?匿名管道使用匿名管道主要用于本地父进程和子进程之间的通信, 在父进程中,首先是要创建一个匿名管道,在创建匿名管道成功后,可以获取这个匿名管道的读句柄和写句柄(是两个句柄哦),然后父进程就可以向这个匿名管道中写入数据和从匿名管道中读取数据了;但是如果要实现的是父子进程通信 阅读全文
posted @ 2013-10-31 15:45 codergeek 阅读(583) 评论(0) 推荐(0) 编辑
摘要: 三次握手原理解析TCP握手协议在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据,在上 阅读全文
posted @ 2013-10-29 09:46 codergeek 阅读(690) 评论(0) 推荐(0) 编辑
摘要: 工程师的职责是什么?是解决问题,解决工作中出现的问题。我是一名普普通通的程序员,我家境一般,我想改变我现在的现状,我也不知道我是怎么了,我学不进去东西.我感觉我有很多知识需要去学习,但是我就是不去学呢?呆呆的我在想着什么呢?我担心以后找工作别人还是把我辞退,我真的很担心,我要多动手实践去解决问题。我可以不好好学吗?都说程序员加班家常便饭,如果技术水平高能够按时完成,会有那么多的加班吗?我的家境一般,通过我自己的努力我相信我以后会有一个好的生活,而不是天天为了挣钱而忙碌,我应该好好努力我有个爱我的女朋友,默默的陪着我这个穷小子,虽然你没和我提过想买但我知道你喜欢ipad,刚刚毕业一年的我以每月3 阅读全文
posted @ 2013-10-13 10:39 codergeek 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 函数指针常用的有三类1、指向普通函数的函数指针2、指向类中静态成员函数的函数指针3、指向类的成员函数的函数指针一、指向普通函数的函数指针#include using namespace std;void Show(){ coutusing namespace std;class CPeople{public: int num;public: CPeople() { num = 100; } static void Show() { cout* 都是编译器提供的新的操作符 支持成员函数指针的操作int main(){ ... 阅读全文
posted @ 2013-10-12 13:13 codergeek 阅读(729) 评论(0) 推荐(1) 编辑
摘要: 为什么要引入拷贝构造函数?(提出问题) 作用:创建一个对象的同时,使用一个已经存在的对象给另一个对象赋值做比较:拷贝构造函数:对象被创建 + 用一个已经存在的对象 进行初始化 拷贝赋值函数:对象已经存在不用创建 + 用一个已经存在的对象进行初始化(区分开初始化操作和赋值)举例:string a("hello");//调用构造函数string b("would");//调用构造函数 string c=a;//调用拷贝构造函数--风格差,应使用string c(a)c=b;//调用拷贝赋值函数什么时候使用拷贝构造函数?(系统自己调用)在创建新对象的时候,希望 阅读全文
posted @ 2013-10-06 21:09 codergeek 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 1、为什么要引入友元函数:在实现类之间数据共享时,减少系统开销,提高效率 具体来说:为了使其他类的成员函数直接访问该类的私有变量 即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数 优点:能够提高效率,表达简单、清晰缺点:友元函数破环了封装机制,尽量不使用成员函数,除非不得已的情况下才使用友元函数。2、什么时候使用友元函数:1)运算符重载的某些场合需要使用友元。2)两个类要共享数据的时候3、怎么使用友元函数:友元函数的参数: 因为友元函数没有this指针,则参数要有三种情况: 1、要访问非static成员时,需要对象做参数;--常用(友元函数常含有参数)2、 要访问s 阅读全文
posted @ 2013-10-06 18:20 codergeek 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 对网络库简单的封装了一下,以后自己使用的时候方便了很多#include #pragma comment(lib,"ws2_32") //链接到ws2_32动态链接库class CInitSock{public: CInitSock(BYTE minorVer = 2,BYTE majorVer = 2) { WSADATA wsaData; WORD VersionRequset; VersionRequset = MAKEWORD(minorVer,majorVer); //装载winsock库 ... 阅读全文
posted @ 2013-08-15 18:37 codergeek 阅读(7531) 评论(0) 推荐(0) 编辑
摘要: 在win7下使用OpenSCManger和OpenService函数,如下代码:SC_HANDLE hSCM = OpenSCManager(NULL,NULL,SC_MANAGER_ENUMERATE_SERVICE );if (!hSCM){CloseServiceHandle(hSCM);return false;}//调用OpenService函数SC_HANDLE hServ =OpenService(hSCM,lpszServName,SERVICE_QUERY_STATUS);if (!hServ){CloseServiceHandle(hSCM);return false;}/ 阅读全文
posted @ 2013-04-10 08:28 codergeek 阅读(875) 评论(0) 推荐(0) 编辑
摘要: 在Windows操作系统中,任务栏的右边(托盘)会常驻几个图标,如输入法切换图标、音量控制图标等,此外我们还经常遇到具有托盘图标的软件,如金山词霸、实时监测功能的杀毒软件等。这些软件在后台运行,通常不占用太多的屏幕资源,只在通知栏上放一个小小的标志,必要时我们可以通过用鼠标点击图标对其进行选单操作或激活其主窗口。有时我们自己编写的程序也希望有类似的效果,本文将详细地介绍用VC设计托盘图标程序的方法。 一、 NOTIFYICONDATA结构 NOTIFYICONDATA结构包含了系统用来处理托盘图标的信息,它包括选择的图标、回调消息、提示消息和图标对应的窗口等内容。其定义为: typ... 阅读全文
posted @ 2013-01-16 17:05 codergeek 阅读(1130) 评论(0) 推荐(0) 编辑