[SNMP4J] Help needed for SNMP over TCP

bang bang bang.chill at gmail.com
Wed Mar 4 18:19:02 CET 2009


I am trying to send out the SNMP V2c trap using SNMP4J. The code which is
trying to do the same is given below. The same code is working fine for UDP
but returns null response for TCP. Can someone please help me to find the
missing point here?

Thanks in advance.
CB

package com.test;
import java.net.InetAddress;
import java.util.ArrayList;
import org.snmp4j.CommunityTarget;
import org.snmp4j.PDU;
import org.snmp4j.PDUv1;
import org.snmp4j.Snmp;
import org.snmp4j.Target;
import org.snmp4j.TransportMapping;
import org.snmp4j.event.ResponseEvent;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.smi.Address;
import org.snmp4j.smi.Integer32;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.TcpAddress;
import org.snmp4j.smi.TimeTicks;
import org.snmp4j.smi.TransportIpAddress;
import org.snmp4j.smi.UdpAddress;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultTcpTransportMapping;
import org.snmp4j.transport.DefaultUdpTransportMapping;
public class SNMP4J {
 private static boolean isTcp = true;
 public static void main(String[] args) {
  try {
   TransportMapping transport = null;
   if (isTcp) {
    transport = new DefaultTcpTransportMapping();
   } else {
    transport = new DefaultUdpTransportMapping();
   }
   Snmp snmp = new Snmp(transport);
   transport.listen();
   System.out.println("Sending PDU");
   ResponseEvent response = snmp.send(getPDU(), getTarget());
   System.out.println("PDU sent");
   if (response != null) {
    System.out.println("GOT"+response.getError());
    System.out.println("GOT"+response.getResponse().getRequestID());
    System.out.println("GOT"+response.getError());
   }
  } catch (Exception exp) {
   System.out.println("Exception sending message"+exp);
  } catch (Error err) {
   System.out.println("Error sending message");
  }
 }
 private static PDU getPDU() throws Exception {
  VariableBinding var;
  PDUv1 pdu = new PDUv1();
  pdu.setType(PDU.TRAP);
  try {

   var = new VariableBinding();
   var.setOid(new OID("1.3.6.1.4.1"));
   var.setVariable(new TimeTicks(12222L));
   pdu.add(var);
   var = new VariableBinding();
   var.setOid(new OID("1.3.6.1.4.1"));
   var.setVariable(new Integer32(99));
   pdu.add(var);

  } catch (Exception p) {
   p.printStackTrace();
  }
  return pdu;
 }
 private static Target getTarget() throws Exception {
  TransportIpAddress targetAddress = null;
  if (isTcp) {
   targetAddress = new TcpAddress(InetAddress.getByName("115.0.0.44"),162);
  } else {
   targetAddress = new UdpAddress(InetAddress.getByName("115.0.0.44"),162);
  }
  CommunityTarget target = new CommunityTarget();
  target.setCommunity(new OctetString("public"));
  target.setAddress(targetAddress);
  target.setVersion(SnmpConstants.version2c);
  target.setTimeout(500L);
  target.setRetries(3);
  return target;
 }

 private void log() {

 }
}



More information about the SNMP4J mailing list