Dart.Snmp Namespace > SnmpSocket Class > GetResponse Method : GetResponse(RequestMessage,String,Int32) Method |
Public Overloads Function GetResponse( _ ByVal request As RequestMessage, _ ByVal hostNameOrAddress As String, _ ByVal port As Integer _ ) As ResponseMessage
Dim instance As SnmpSocket Dim request As RequestMessage Dim hostNameOrAddress As String Dim port As Integer Dim value As ResponseMessage value = instance.GetResponse(request, hostNameOrAddress, port)
public ResponseMessage GetResponse( RequestMessage request, string hostNameOrAddress, int port )
public: ResponseMessage* GetResponse( RequestMessage* request, string* hostNameOrAddress, int port )
public: ResponseMessage^ GetResponse( RequestMessage^ request, String^ hostNameOrAddress, int port )
Exception | Description |
---|---|
System.Net.Sockets.SocketException | A problem was experienced using the Socket or the Socket.ReceiveTimeout period has expired. |
DecodingException | A problem was encountered decoding the Response. |
A valid ResponseMessage is returned unless an exception is thrown.
Agents typically listen on port 161 but can be configured to listen on any port. If sending an InformMessage to another Manager, port 162 is usually used.
SNMPv3 discovery of the recipient's engine id and time is automatic and cached in SessionSecurity.EngineCache. Encrypted passwords are cached to improve performance. A ReportMessage may be returned to indicate a failure.
private void button1_Click(object sender, EventArgs e) { //Create and send request on a worker thread manager1.Start(manager1_SendGetRequest, manager1.Mib.CreateVariable(NodeName.sysContact)); } private void button2_Click(object sender, EventArgs e) { //If you don't have the MIB, retrieve the value by IID: manager1.Start(manager1_SendGetRequest, new Variable("1.3.6.1.2.1.1.4.0")); } private void manager1_SendGetRequest(SnmpSocket managerSocket, object state) { //Create Get Request GetMessage request = new GetMessage(); request.Variables.Add(state as Variable); //Send request and get response ResponseMessage response = managerSocket.GetResponse(request, myAgentAddress); //Marshal response to the UI thread using the Message event manager1.Marshal(new ResponseMessage[] { response }, "", null); } private void manager1_Message(object sender, MessageEventArgs e) { //Display info about the first variable in the response, and its value Variable vari = e.Messages[0].Variables[0]; label1.Text += vari.Definition.ToString() + vari.Value.ToString() + "\r\n"; }
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) 'Create and send request on a worker thread manager1.Start(AddressOf manager1_SendGetRequest, manager1.Mib.CreateVariable(NodeName.sysContact)) End Sub Private Sub button2_Click(ByVal sender As Object, ByVal e As EventArgs) 'If you don't have the MIB, retrieve the value by IID: manager1.Start(AddressOf manager1_SendGetRequest, New Variable("1.3.6.1.2.1.1.4.0")) End Sub Private Sub manager1_SendGetRequest(ByVal managerSocket As SnmpSocket, ByVal state As Object) 'Create Get Request Dim request As New GetMessage() request.Variables.Add(TryCast(state, Variable)) 'Send request and get response Dim response As ResponseMessage = managerSocket.GetResponse(request, myAgentAddress) 'Marshal response to the UI thread using the Message event manager1.Marshal(New ResponseMessage() { response }, "", Nothing) End Sub Private Sub manager1_Message(ByVal sender As Object, ByVal e As MessageEventArgs) 'Display info about the first variable in the response, and its value Dim vari As Variable = e.Messages(0).Variables(0) label1.Text &= vari.Definition.ToString() & vari.Value.ToString() & vbCrLf End Sub