Dart.Snmp Namespace > Manager Class > Start Method : Start(NotificationReceived,Object) Method |
Public Overloads Sub Start( _ ByVal callback As NotificationReceived, _ ByVal state As Object _ )
Dim instance As Manager Dim callback As NotificationReceived Dim state As Object instance.Start(callback, state)
public void Start( NotificationReceived callback, object state )
public: void Start( NotificationReceived* callback, Object* state )
public: void Start( NotificationReceived^ callback, Object^ state )
This method presents all SNMP messages that may be received by a Manager.
The socket is bound to the default IPv4 interface and port 162 if Transport is set to Transport.UDP or port 10162 if Transport is set to Transport.DTLS
This method always creates a new SocketBase.Socket. Use multiple Manager instances to accept traps on multiple sockets.
If an InformMessage is received (from another manager or an agent), use SnmpBase.Send to send the expected ResponseMessage. No response is expected when a trap is received.
Unhandled exceptions occurring on the worker thread will be caught and reported by the Error event.
Scripting applications should use Receive instead.
private void button1_Click(object sender, EventArgs e) { //Start listening for notifications manager1.Start(manager1_NotificationReceived, null); } private void manager1_NotificationReceived(Manager manager, MessageBase message, object state) { //Marshal message to the UI thread using the Message event if (message is Trap1Message) manager.Marshal(new MessageBase[] { message }, "trap1", null); else if (message is Trap2Message) manager.Marshal(new MessageBase[] { message }, "trap2", null); else if (message is InformMessage) { manager.Marshal(new MessageBase[] { message }, "inform", null); //Send response to inform message origin manager.Send(new ResponseMessage(message as InformMessage, null), message.Origin); } } private void manager1_Message(object sender, MessageEventArgs e) { //Update interface according to message type received switch (e.Message) { case "trap1": Trap1Message trap = e.Messages[0] as Trap1Message; label1.Text = "Trap1 received with Enterprise(" + trap.Enterprise + "), Generic Type (" + trap.GenericTrap.ToString() + "), Specific Type(" + trap.SpecificTrap.ToString() + ")"; break; case "trap2": Trap2Message notification = e.Messages[0] as Trap2Message; label2.Text = "Trap2 received with OID (" + notification.Oid + ")"; break; case "inform": InformMessage inform = e.Messages[0] as InformMessage; label3.Text = "Inform received with " + inform.Variables.Count.ToString() + " variable(s)."; break; } }
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) 'Start listening for notifications manager1.Start(AddressOf manager1_NotificationReceived, Nothing) End Sub Private Sub manager1_NotificationReceived(ByVal manager As Manager, ByVal message As MessageBase, ByVal state As Object) 'Marshal message to the UI thread using the Message event If TypeOf message Is Trap1Message Then manager.Marshal(New MessageBase() { message }, "trap1", Nothing) ElseIf TypeOf message Is Trap2Message Then manager.Marshal(New MessageBase() { message }, "trap2", Nothing) ElseIf TypeOf message Is InformMessage Then manager.Marshal(New MessageBase() { message }, "inform", Nothing) 'Send response to inform message origin manager.Send(New ResponseMessage(TryCast(message, InformMessage), Nothing), message.Origin) End If End Sub Private Sub manager1_Message(ByVal sender As Object, ByVal e As MessageEventArgs) 'Update interface according to message type received Select Case e.Message Case "trap1" Dim trap As Trap1Message = TryCast(e.Messages(0), Trap1Message) label1.Text = "Trap1 received with Enterprise(" & trap.Enterprise & "), Generic Type (" & trap.GenericTrap.ToString() & "), Specific Type(" & trap.SpecificTrap.ToString() & ")" Case "trap2" Dim notification As Trap2Message = TryCast(e.Messages(0), Trap2Message) label2.Text = "Trap2 received with OID (" & notification.Oid & ")" Case "inform" Dim inform As InformMessage = TryCast(e.Messages(0), InformMessage) label3.Text = "Inform received with " & inform.Variables.Count.ToString() & " variable(s)." End Select End Sub