返回信息流最近在做网络拓扑的东西,用的是wsnmpAPI开发,开发语言是是c#。但是遇到了问题,就是SnmpRecvMsg()函数出了问题,接收不到信息。搞了我几天了,一直出不来。
声明是:
[DllImport("wsnmp32.dll")]
public static extern SNMPAPI_STATUS SnmpRecvMsg(IntPtr session, out IntPtr src, out IntPtr dest, out IntPtr context, out IntPtr pdu);
函数是:
if(SnmpRecvMSg(hSession,out src,out dest,out hContext,out pdu_resv)!=SNMPAPI_SUCCESS)
{
MessageBox("SnmpRecvMSg Error","Error");
Return;
}
其中hSession是用SnmpOpen()函数建立的,hContext也是用函数SnmpStrToContext()建立的,src、dest、pdu_resv是新定义的。运行时弹出"SnmpRecvMSg Error"的错误,用 SnmpGetLastError(hSession)返回的错误是SNMPAPI_NOOP。我用抓包软件抓了包,显示程序发出了请求信息,路由器也返回了response信息,但是程序就是接收不到。请大牛指教啊!
这是一条镜像帖。来源:北邮人论坛 / soft-design / #33234同步于 2009/3/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
拜大牛!C#开发wsnmpAPI问题,SnmpRescMsg函数问题
qohn
2009/3/30镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
或试试 C++/cli,先跑成一个例子先
【 在 qohn 的大作中提到: 】
: 最近在做网络拓扑的东西,用的是wsnmpAPI开发,开发语言是是c#。但是遇到了问题,就是SnmpRecvMsg()函数出了问题,接收不到信息。搞了我几天了,一直出不来。
: 声明是:
: [DllImport("wsnmp32.dll")]
: ...................
先谢过ls两位了!下午的时候又研究了一下,发现SnmpRecvMsg()这个函数是非阻塞的。当路由器返回信息时,窗口会发出一个消息,此时要响应该消息映射并调用SnmpRecvMsg()接收信息。我一直以为这个函数会直接接收返回的信息的,所以出错了。再次谢谢各位了~
不客气。找到了问题就好
【 在 qohn 的大作中提到: 】
: 先谢过ls两位了!下午的时候又研究了一下,发现SnmpRecvMsg()这个函数是非阻塞的。当路由器返回信息时,窗口会发出一个消息,此时要响应该消息映射并调用SnmpRecvMsg()接收信息。我一直以为这个函数会直接接收返回的信息的,所以出错了。再次谢谢各位了~