[SNMP4J] TCP Port not closed when invoked transport.close method
Vijay Reddy (dvsreddy)
dvsreddy at cisco.com
Thu Jul 12 01:40:59 CEST 2007
Hi Frank,
Thanks for your quick response.
Here the port is still in Listening mode even after transport close.
Can you please help me with examples or some document that will help me
to implement my own TCPTransportMapping.
Thanks and regards,
Vijay
-----Original Message-----
From: Frank Fock [mailto:fock at agentpp.com]
Sent: Wednesday, July 11, 2007 4:36 PM
To: Vijay Reddy (dvsreddy)
Cc: snmp4j at agentpp.org
Subject: Re: [SNMP4J] TCP Port not closed when invoked transport.close
method
Hi Vijay,
Depending on your operating system TCP ports may not immediately be
available for reuse. See
http://java.sun.com/j2se/1.5.0/docs/api/java/net/Socket.html#setReuseAdd
ress(boolean)
for an explanation.
To allow immediate reuse, you will have to implement your own
TCPTransportMapping.
I will provide a hookup-method to allow setting socket options by
extending the default mappings.
Best regards,
Frank
Vijay Reddy (dvsreddy) wrote:
> Hi,
>
> Am trying to write SNMP TCP Trap receiver program. Am able to receive
> traps, but when tried to close the connection, still the TCP port is
> listening mode.
>
>
> Can you please let me know if anything wrong in my code as provide
> below, Am working in Eclipse IDE, port is released only when closing
> the Eclipse IDE.
>
>
> private synchronized void listen(IPAddress receiverIp , int
> connectionType, int dest_port ) throws IOException,
> InterruptedException {
>
> String sourceIp = receiverIp.getIPAddress()+ "/"+dest_port;
>
> Snmp snmp = null;
>
> if (connectionType == TrapConstants.TCP) {
>
> transport = new DefaultTcpTransportMapping(new TcpAddress(sourceIp));
>
> } else {
>
> transport = new DefaultUdpTransportMapping(new UdpAddress(sourceIp));
>
> }
>
> ThreadPool threadPool =
>
> ThreadPool.create("DispatcherPool", NUMBER_OF_THREADS);
>
> MessageDispatcher mtDispatcher =
>
> new MultiThreadedMessageDispatcher(threadPool, new
> MessageDispatcherImpl());
>
> mtDispatcher.addMessageProcessingModel(new MPv2c());
>
> snmp = new Snmp(mtDispatcher, transport);
>
> snmp.addCommandResponder(this);
>
> transport.listen();
>
> LogManager.getTextLog().debug("Listening on "+sourceIp);
>
> }
>
> public synchronized void processPdu(CommandResponderEvent event) {
>
> PDU command = event.getPDU();
>
> if (command != null) {
>
> receivedEventList.add(command);
>
> }
>
> }
>
> public void close() throws IOException {
>
> transport.close(); // Call is successfull but doesn't release the
> port immediately.
>
> }
>
>
>
>
> Thanks and regards,
> Vijay
> _______________________________________________
> SNMP4J mailing list
> SNMP4J at agentpp.org
> http://lists.agentpp.org/mailman/listinfo/snmp4j
--
AGENT++
http://www.agentpp.com
http://www.mibexplorer.com
http://www.mibdesigner.com
More information about the SNMP4J
mailing list