想做一个NT服务程序,做各种消息的中转(单一机器上各种进程间的消息中转),可是不知道客户端该如何调用服务程序比如,客户端发送一条自定义消息,参数是一个自定义结构体,结构体内包含消息ID和其它需要的数据等等等等,服务端收到后将消息中转到所有客户端客户端和服务端该如何通信?
实现"类似"MFC程序间的SendMessage 的功能

解决方案 »

  1.   

    RPC是什么东西?怎么调用啊,我实在没有办法,已经把服务做成Com服务了....
    单机上用的东西,都是MFC的,郁闷死了我得解决这个问题help
      

  2.   

    做成COM调用不是更简单么,直接用接口。
      

  3.   

    COM 对象
    IP 协议(参考)客户端实现消息处理接口IReciever->接口实现函数OnMessage(struct msg)启动客户端->创建COM对象->COM初始化,寻找已创建的对象,若无则新建对象->获取COM 通讯接口ISender->接口实现SendMessage(struct msg)->调用SendMessage实现通讯->COM 询找指定进程->COM 获取该进程IReciever接口->COM调用IReciever::OnMessage(struct msg)->客户端自处理 msg 消息
      

  4.   

    RPC 就是标准的解决此问题的方法,如果楼主还不知道怎么做,那就需要系统地去学习一下了,大家在这里的讨论不太可能给你一个完整的解决方案的。
      

  5.   

    用RPC做了客户端可以调用服务端程序
    服务端也可以回调C但是有新问题:按我的想法
    C调用S的函数后,S要回调所有的C端但是在IDL同一接口中加的callback函数,S端调用时不会调用到所有的C,只会调用当前的C如何解决?谢谢
      

  6.   

    遇到新的问题把服务端做成了NT Service
    手动运行(双击SSService.exe )S端没问题,调用成功但以服务方式运行,过约20秒服务自动退出了
    20秒内,客户端初始化返回正常,但调用具体的S端函数时就异常了(提示服务器不可用)望不吝赐教
      

  7.   

    网上找一个CS结构的代码,把服务端写成WINDOWS服务不就可以了吗