本文整理汇总了C++中Packet::ErrorStatus方法的典型用法代码示例。如果您正苦于以下问题:C++ Packet::ErrorStatus方法的具体用法?C++ Packet::ErrorStatus怎么用?C++ Packet::ErrorStatus使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Packet
的用法示例。
在下文中一共展示了Packet::ErrorStatus方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: memset
//.........这里部分代码省略.........
///////////////////////////////////////////////////
// new to version 2.7
#ifdef _WIN32
NtSysUpTime sysUpTime;
#endif
#ifdef _LINUX
LinuxSysUpTime sysUpTime;
#endif
#ifdef _SOLARIS
SolarisSysUpTime sysUpTime;
#endif
#ifdef _IRIX
IrixSysUptime sysUpTime;
#endif
#ifdef _HPUX
HpuxSysUpTime sysUpTime;
#endif
#ifdef _FREEBSD
FreeBSDSysUptime sysUpTime;
#endif
gTimeTicks = sysUpTime.SysUpTime();
///////////////////////////////////////////////////
// figure out the ip address if not specified (V1 only)
if (gSenderIP == NULL && gVersion == 0)
{
char buf[255];
unsigned long len = 255;
memset(buf, 0, len);
if (gethostname(buf, len))
if (gDoLogging)
gOfile << "gethostname failed with error " << WSAGetLastError() << endl;
HOSTENT* h = gethostbyname(buf);
if (h != NULL)
{
struct in_addr in;
memcpy(&in.s_addr, *(h->h_addr_list), sizeof(in.s_addr));
gSenderIP = inet_ntoa(in);
}
else
{
gSenderIP = "240.30.20.10";
if (gDoLogging)
gOfile << "gethostbyname failed with error " << WSAGetLastError() << endl;
}
}
// build the packet
gPacket.Version(gVersion);
gPacket.Community(gCommunity);
if (gVersion == 0)
{
gPacket.Type(V1TRAP);
gPacket.SenderOID(gSenderOID);
gPacket.SenderIP(gSenderIP);
gPacket.TimeTicks(gTimeTicks);
gPacket.GenericTrapType(gGenericTrapType);
gPacket.SpecificTrapType(gSpecificTrapType);
}
else
{
if (!gInform)
gPacket.Type(V2TRAP);
else
gPacket.Type(INFORMPDU);
gPacket.RequestId(gRequestId);
gPacket.ErrorStatus(0);
gPacket.ErrorIndex(0);
gPacket.AddV2TrapVarbinds(gTimeTicks,
gSenderOID,
gGenericTrapType,
gSpecificTrapType,
gNoSubIds);
}
// send away
retVal = Send();
}
catch (SnmpException* se)
{
retVal = -1;
}
catch (...)
{
retVal = -2;
}
#ifdef _WIN32
WSACleanup();
#endif
if (gDoLogging)
gOfile.close();
return retVal;
}
示例2: ReadInterfaceNamesBulk
void ReadInterfaceNamesBulk()
{
BOOL Done=FALSE;
char *OIDString;
OidVarbind* oid;
VbPair* vbp;
const char *RawRetP=NULL;
Packet* retP;
DWORD Retries;
DWORD x; /* Counter */
Packet p(GETBULK, 1); // create an SNMP v2c GETBULK command
int vbLen;
int vbCounter;
int len;
unsigned int IntNumber;
/***************/
/* Set up OIDs */
/***************/
OIDString = (char *)malloc(1000);
sprintf(OIDString, "1.3.6.1.2.1.2.2.1.2");
/*************************/
/* Create GETBULK packet */
/*************************/
p.Community(Community); // set the community string
p.RequestId(123); // use device number to track the request
p.ErrorStatus(0); // set non-repeaters to zero
p.ErrorIndex(5); // set number of max-repititions
oid = new OidVarbind(OIDString); // OID for first MAC address
vbp = new VbPair(oid, NULL); // Create vbpairs
p.Add(vbp); // Add vbpair to the packet
UdpClient udp(161, Agent); // Set to port 161 and IP address (or host name)
udp.Timeout(5); // Set timeout to PollDeviceTimeout
udp.ReadBufferSize(65535); // set buffer size to be large enough to handle response
/*******************/
/* Collection loop */
/*******************/
IntNumber=0;
Done = FALSE;
while (!Done)
{
Retries=0;
do
{
dumpPacket(&p);
udp.Send(&p); // Send the packet
Retries++;
RawRetP = udp.Receive(); // Receive the reply
} while ((!RawRetP) && (Retries < 3));
/*************************************/
/* If the packet is valid, save info */
/*************************************/
if ( RawRetP )
{
// Determine length and parse packet
len = udp.ReadLength();
SnmpParser parser((unsigned char*)RawRetP, len);
retP = parser.packet();
if (retP != NULL)
{
// Packet was parsed successfully
if ( retP->RequestId() == 123 )
{
// RequestID matches
if ( retP->ErrorStatus() == NOERROR )
{
// No SNMP error found, learn how many OIDs were returned
vbLen = retP->VbListLength();
// Loop through for each returned OID
for (vbCounter=1 ; vbCounter <= vbLen ; vbCounter++)
{
sprintf(OIDString, "%s", retP->VbOID(vbCounter));
if (strncmp(OIDString, "1.3.6.1.2.1.2.2.1.2.", 20) == 0)
{
// OID is still correct, print the results
printf("%s: %s\n", retP->VbOID(vbCounter), retP->VbData(vbCounter));
}
else
{
// OID does not match, we're done
Done=TRUE;
break;
}
} // Loop through all OIDs
// Set up next packet
delete oid;
printf("assigning new oid of <%s>\r\n", OIDString);
oid = new OidVarbind(OIDString);
p.VbList()->FirstVbPair()->OIDVarbind(oid);
}
else
//.........这里部分代码省略.........