我试图将一个SNMP代理集成到用本地C ++编写的Windows应用程序中。
要使此代理成为Windows SNMP代理的子代理,必须编写一个用于导出由Windows SNMP服务调用的某些例程的DLL。 到目前为止事情工作正常。
现在这个DLL需要从应用程序中获取实际的信息。 我的第一个想法是让应用程序和DLL使用一个双方都可以访问的共享内存块,但这会使信息总是显得过时,并且在SNMP请求进入时运行一些代码来获取最新值会更好。双方将读写信息。
该应用程序已经有一个基于TCP的控制台界面,但连接,查询,断开连接对于来自SNMP客户端的非常频繁的请求可能有点重。
我有什么select让DLL直接与应用程序通信?
命名管道很容易处理,不会干扰防火墙,不需要额外的同步(就像共享内存那样)。 有关更多信息,请参阅MSDN 。