【发布时间】:2012-08-09 08:37:43
【问题描述】:
我正在使用带有 Indy 10.5.7 的 c++builderXE,我正在尝试从另一个代理 snmp 接收陷阱。
我没有任何信息描述如何执行接收陷阱的程序。
您可以在下面找到我现在尝试使用的代码的 sn-p。
ReceiveTrap() 方法总是返回 0,表示没有接收到数据。
我用几年前使用备用 API 制作的另一个程序测试了 PC 配置,并且收到了陷阱,所以我不认为这应该是配置问题。
你有什么建议我在下面的例程中错了吗?
void __fastcall TForm1::LabelReceiveTrapClick(TObject * Sender)
{
static bool status = false;
int ists;
String Fun = "[SimpleReceiveTrap] ";
TSNMPInfo * infoSnmp = 0;
try
{
status = !status;
if (status)
{
std::auto_ptr< TIdSNMP >clientSnmp(new TIdSNMP(NULL));
clientSnmp->Community = "public";
clientSnmp->ReceiveTimeout = 1000;
clientSnmp->Binding->Port = 162;
while (status)
{
Application->ProcessMessages();
ists = clientSnmp->ReceiveTrap();
Mylog(L"%s ReceiveTrap status = [%d]", Fun.c_str(), ists);
if (ists > 0)
{
infoSnmp = clientSnmp->Trap;
}
}
}
}
catch (Exception & ex)
{
Mylog(L"%s ERROR", Fun.c_str(), ex.Message.c_str());
}
}
【问题讨论】:
标签: c++builder snmp indy snmp-trap