进程通信系列-消息缓冲

  消息缓冲机制就是把消息直接放在结构体里,以消息进行传输,缺点在于数据长度有限制,容易出错,优点在于可以多窗口传输,即时传输

消息缓冲类:(接受代码是重载一个消息函数,放在最后exe代码中展现)

#include "stdafx.h"
#include "copyData.h"

CString name,content;
COPYDATASTRUCT cd;
copyData::copyData(void)
{
		cd.dwData=0;
}
copyData::~copyData(void)
{
}
int flag=0;
BOOL CALLBACK find(HWND hwnd, LPARAM lParam)
{
	char s[200];
	GetWindowText(hwnd,s,200);
	if(s==name)
	{
		SendMessage(hwnd, WM_COPYDATA, 0, (LPARAM)(&cd));
		flag=1;
	}
	return 1;
}
int copyData::send(CString na,CString co)//发消息
{
	name=na;content=co;
	cd.cbData=content.GetLength()+1;
	cd.lpData=(void*)content.GetBuffer(cd.cbData);
	flag=0;
	EnumWindows(find,NULL);
	return flag;
}
时间: 2024-09-17 03:40:21

进程通信系列-消息缓冲的相关文章

进程通信系列-匿名管道

匿名管道只能在本机由父进程至子进程,优点在于子进程方便重定向,常用于应用程序内部 注意判断此进程是父类还是子类,代码长度一般 匿名管道类 #include "stdafx.h" #include "niming.h" #include <iostream> using namespace std; niming::niming(void) { } niming::~niming(void) { } int niming::build() { SECURI

进程通信系列-单向邮槽

      单向邮槽可以用于局域网的不可靠单向广播,代码长度一般,功能一般        缺点:不可靠,单向        优点:简单,不必关心协议 单向邮槽类: #include "stdafx.h" #include "mailslot.h" mailslot::mailslot(void) { hmail=NULL; } mailslot::~mailslot(void) { if(hmail) CloseHandle(hmail); } int mailsl

进程通信系列-共享内存

共享内存是最简单的方法,但要注意是要限制长度,只能是定长的,而且要加以判断有没有获取过 共享内存类: #include "stdafx.h" #include "share.h" #pragma data_seg("have_jxy")//共享数据段还有种方法是内存映射 char m[2000]="";//必须是定长,不然会卡死 #pragma data_seg() #pragma comment(linker,"/

理解Storm的内部消息缓冲机制

这篇文章是Apache Kafka的作者之一Michael G. Noll写的,他的博客地址在[这里]. 优化Storm计算拓扑性能的过程有助于我们理解Storm内部消息队列的配置和使用,在这篇简短的文章中,我将向大家解释并说明Storm(0.8或0.9版本)的一个工作进程(worker process)和与其相关的多个执行器线程是如何完成内部通信的. Storm工作进程(Worker processes)的内部消息机制 在以下各章节中,我会交替地使用消息(message)和元组(tuple)两

运用异步输入输出流编写Socket进程通信

同步?异步输入输出机制的引入 在Merlin之前,编写Socket程序是比 较繁琐的工作.因为输入输出都必须同步.这样,对于多客户端客户/服务器模式, 不得不使用多线程.即为每个连接的客户都分配一个线程来处理输入输出.由此而 带来的问题是可想而知的.程序员不得不为了避免死锁,线程安全等问题,进行大 量的编码和测试.很多人都在抱怨为什么不在Java中引入异步输入输出机制.比较 官方的解释是,任何一种应用程序接口的引入,都必须兼容任何操作平台.因为 Java是跨平台的.而当时支持异步输入输出机制的操

线程同步机制的区别与比较及进程通信方法

http://hi.baidu.com/wobash/blog/item/4c1de9464899c40f6a63e500.html 线程同步机制的区别与比较及进程通信方法 2008-08-29 14:07 有关多线程的一些技术问题: 1.   何时使用多线程? 2.   线程如何同步? 3.   线程之间如何通讯? 4.   进程之间如何通讯? 先来回答第一个问题,线程实际主要应用于四个主要领域,当然各个领域之间不是绝对孤立的,他们有可能是重叠的,但是每个程序应该都可以归于某个领域: 1.  

linux间进程通信

原文转自:http://www.cnblogs.com/linshui91/archive/2010/09/29/1838770.html 一.进程间通信概述 进程通信有如下一些目的:A.数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B.共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到.C.通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程).D.资源共享:多个进程之间

消息传递-Visual C++ 中利用WM_COPYDATA进程通信

问题描述 Visual C++ 中利用WM_COPYDATA进程通信 在MFC进程利用通信时,怎么在利用发送消息的窗口类指针pWnd在接收消息后回复一个响应. 具体想法如下: BOOL CMainFrame::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct) { if (pCopyDataStruct != NULL) { LPCTSTR pszText = (LPCTSTR)(pCopyDataStruct->lpData); DW

进程通信(转)

  1.定义:     进程通讯是指进程之间的信息交换.       在进程之间要传送大量数据时,就需要使用进程通讯.     进程互斥和同步需要交换一定的信息,它们也可归为进程通讯,属于低级的进程通讯.低级的原因在于 (1).效率低,生产者每次只能向缓冲池投放一个产品(消息),消费者每次只能从缓冲池中取得一个消息 (2).通讯对用户不透明,OS职位进程之间的通讯提供了共享存储其.   2.进程通讯特点: 使用方便.OS隐藏了实现进程通讯的具体细节,向用户提供了一组用于实现高级通信的命令(原语)