首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎么实现2个MFC进程之间的即时通讯

2014-05-25 来源:读书人网 【读书人网(Reader8.cn):综合教育门户网站】
如何实现2个MFC进程之间的即时通讯?最近在写一个监控小程序出现了一个问题,假设监控程序为Monitor.exe,被

如何实现2个MFC进程之间的即时通讯?
最近在写一个监控小程序出现了一个问题,假设监控程序为Monitor.exe,被监控程序为Client.exe,监控的作用是可以强行关闭和打开Client.exe,并且还能定时从后台下载更新文件来覆盖Client.exe.但是更新那块,我想做出这样的模式:

Monitor.exe里面用一个定时器,定期检查下载文件夹内是否有新的Client.exe,如果有,先向Client.exe发送消息请求状态,看Client.exe是否正在有用户使用,如果有,就继续等待,如果没有,就立刻关闭Client.exe,然后用MoveFileEx函数将下载文件夹里的新Client.exe覆盖过来并删除源文件.

但是如何向Client.exe发送消息后再得到Client.exe的使用状态,这块我就发愁了,Monitor.exe向Client.exe发送自定义的消息后(使用的是SendMessage函数),如果有人在使用,Client.exe该如何将有人使用这个状态反馈给Monitor.exe,Monitor又如何得知它所收到的消息一定是上一次发送消息的返回呢?

说的简单的点,一个进程A给进程B发送消息SendMessage后,如何准确而又迅速的收到B给他返回的信息提示,比如返回字符串"有人使用","无人使用"....

[解决办法]
socket通信...
[解决办法]
可这样 你发的时候标记自己的信息格式:1:内容;2:标示符号(例如"REQUEST"表示请求,“REPLY"表示回应");3:请求序列号或者回应序列号(该序列用于标示服务器或者客户当前响应的事件序号)
[解决办法]
1 使用hook挂载DLL,就可以向monitor发消息

2 如何控制消息准确性? 7#说的就可以,难的就是要维护序列号


[解决办法]
你可以向client发送一个消息 ,client收到该消息后弹出一个对话框,询问用户是否更新,如果用户点击是,则client向monitor发送我要更新的消息,接着更新client,如果用户点击否,则向monitor发送不需要更新,然后再过一段时间再询问client是否更新