1 Reply Latest reply: Dec 20, 2008 9:45 AM by dougm_hyperic RSS

NetStat getTcpEstablished gives wrong number

manojpec Hot Shot
Currently Being Moderated
Hi,

    Have a look at the following code snippet and the sample output. I am not getting the expected result on invoking netstat.getTcpEstablished();


    netstat = sigar.getNetStat(serverLsnr.getBindAddress().getAddress(), serverLsnr.getBindPort());
    getNetInfo(serverLsnr.getBindPort());
    Assert.assertEquals(2, netstat.getTcpEstablished());


  private void getNetInfo(int bindPort) {
    try {
      Sigar s = new Sigar();
      NetInfo info = s.getNetInfo();
      NetInterfaceConfig config = s.getNetInterfaceConfig(null);
      System.out.println(info.toString());
      System.out.println(config.toString());

      int flags = NetFlags.CONN_TCP | NetFlags.TCP_ESTABLISHED;

      NetConnection[] connections = s.getNetConnectionList(flags);

      System.out.println("XXX Established connections if any");
      for (int i = 0; i<connections.length; i++) {
        long port = connections(i).getLocalPort();
        long remotePort = connections(i).getRemotePort();
        if (bindPort == port || bindPort == remotePort) {
          System.out.println("XXX " + connections(i));
        }
      }
    } catch (SigarException se) {
      System.out.println("Unable to get Sigar NetInfo: " + se);
    }
  }


output:

INFO XXX Established connections if any
INFO XXX {Type=16, RemoteAddress=::ffff:127.0.0.1, State=6, SendQueue=0, RemotePort=51091, LocalAddress=::ffff:127.0.0.1, ReceiveQueue=0, LocalPort=39852}
INFO XXX {Type=16, RemoteAddress=::ffff:127.0.0.1, State=1, SendQueue=0, RemotePort=51091, LocalAddress=::ffff:127.0.0.1, ReceiveQueue=0, LocalPort=34122}
INFO XXX {Type=16, RemoteAddress=::ffff:127.0.0.1, State=6, SendQueue=0, RemotePort=51091, LocalAddress=::ffff:127.0.0.1, ReceiveQueue=0, LocalPort=35317}
INFO XXX {Type=16, RemoteAddress=::ffff:127.0.0.1, State=6, SendQueue=0, RemotePort=51091, LocalAddress=::ffff:127.0.0.1, ReceiveQueue=0, LocalPort=54564}
INFO XXX {Type=16, RemoteAddress=::ffff:127.0.0.1, State=6, SendQueue=0, RemotePort=51091, LocalAddress=::ffff:127.0.0.1, ReceiveQueue=0, LocalPort=54566}
INFO XXX {Type=16, RemoteAddress=::ffff:127.0.0.1, State=6, SendQueue=0, RemotePort=51091, LocalAddress=::ffff:127.0.0.1, ReceiveQueue=0, LocalPort=54568}
INFO XXX {Type=16, RemoteAddress=::ffff:127.0.0.1, State=1, SendQueue=0, RemotePort=51091, LocalAddress=::ffff:127.0.0.1, ReceiveQueue=0, LocalPort=54570}
INFO XXX {Type=16, RemoteAddress=::ffff:127.0.0.1, State=6, SendQueue=0, RemotePort=51091, LocalAddress=::ffff:127.0.0.1, ReceiveQueue=0, LocalPort=54384}
INFO XXX {Type=16, RemoteAddress=::ffff:127.0.0.1, State=6, SendQueue=0, RemotePort=51091, LocalAddress=::ffff:127.0.0.1, ReceiveQueue=0, LocalPort=49485}
INFO XXX {Type=16, RemoteAddress=::ffff:127.0.0.1, State=1, SendQueue=0, RemotePort=34122, LocalAddress=::ffff:127.0.0.1, ReceiveQueue=0, LocalPort=51091}
INFO XXX {Type=16, RemoteAddress=::ffff:10.0.4.137, State=1, SendQueue=0, RemotePort=51091, LocalAddress=::ffff:10.0.4.160, ReceiveQueue=0, LocalPort=8080}
INFO XXX {Type=16, RemoteAddress=::ffff:127.0.0.1, State=1, SendQueue=0, RemotePort=54570, LocalAddress=::ffff:127.0.0.1, ReceiveQueue=0, LocalPort=51091}

NetStat.getTcpEstablished = 5.

1. Why is TIME_WAIT state is also counted for tcp established connections ?
2. What is the right way of getting current tcp established connections for particular address and pot ?
3. What is the right of listing all Tcp Established connections for a particular address.

More Like This

  • Retrieving data ...

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 6 points

Share This Page