我在使用 AGENT++的时候遇到这个问题
程序如下
UINT MyListen(LPVOID param)
{
int status;
Snmp::socket_startup();
#ifdef SNMP_PP_WITH_UDPADDR
UdpAddress inaddr("0.0.0.0");
inaddr.set_port(4700);
Snmpx snmp(status, inaddr);
RequestList *reqList;
reqList = new RequestList();
reqList->set_snmp(&snmp);
Mib *mib;
mib = new Mib();
init(*mib);
mib->set_request_list(reqList);
Request* req; // pointer to an incoming SNMP request
boolean run = TRUE;
while (run) // loop forever(agent is an daemon)
{
req = reqList->receive(2); //运行程序后 一旦收到管理端的GET 命令 程序就崩溃推出
AfxMessageBox("GOT ONE");
mib->process_request(req);
} // process the request
else
{
mib->cleanup();
}
}
}
我现在可以调试单步进receive(),在receive()里有这样一句话,threadpool->exeutive()程序在这里报错了,显示threadpool为(null),threadpool是一个线程库。我是这样想的,本来我就是创建一个线程等待另一台主机的消息的到来,然后在开发包里面的receive()函数每接收到一个消息就会启动一个线程进行消息处理,
不知道为什么哦
这个命令是AGENT++自己带的 是我使用的有问题么