added Snmp client thread (untested)
This commit is contained in:
parent
805330fa27
commit
1c2b262680
|
@ -1,5 +1,3 @@
|
||||||
<component name="CopyrightManager">
|
<component name="CopyrightManager">
|
||||||
<settings default="">
|
<settings default="" />
|
||||||
<module2copyright />
|
|
||||||
</settings>
|
|
||||||
</component>
|
</component>
|
|
@ -10,7 +10,7 @@
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -41,6 +41,7 @@ public class Main {
|
||||||
@Override
|
@Override
|
||||||
public void windowClosing(WindowEvent e) {
|
public void windowClosing(WindowEvent e) {
|
||||||
chaOSCclient.stopReceiver();
|
chaOSCclient.stopReceiver();
|
||||||
|
snmp.stopRunning();
|
||||||
super.windowClosing(e);
|
super.windowClosing(e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -63,6 +63,7 @@ public class MainForm {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
snmpTimer.setRepeats(true);
|
snmpTimer.setRepeats(true);
|
||||||
|
snmpStatClient.start();
|
||||||
|
|
||||||
|
|
||||||
if(showErrors) {
|
if(showErrors) {
|
||||||
|
@ -76,6 +77,8 @@ public class MainForm {
|
||||||
pulse3.hide();
|
pulse3.hide();
|
||||||
statDisplay.hide();
|
statDisplay.hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -146,4 +149,5 @@ public class MainForm {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,19 +21,22 @@ import java.util.List;
|
||||||
* @author: lucas
|
* @author: lucas
|
||||||
* @date: 18.04.14 12:10
|
* @date: 18.04.14 12:10
|
||||||
*/
|
*/
|
||||||
public class SnmpStatClient {
|
public class SnmpStatClient extends Thread {
|
||||||
|
private final int napTime = 5000;
|
||||||
public static final String OID_COUNTER = "1.3.6.1.2.1.2.2.1.10";
|
public static final String OID_COUNTER = "1.3.6.1.2.1.2.2.1.10";
|
||||||
private HashMap<Integer, Long> lastPorts = new HashMap<>();
|
private HashMap<Integer, Long> lastPorts = new HashMap<>();
|
||||||
private HashMap<Integer, Long> sumPorts = new HashMap<>();
|
private HashMap<Integer, Long> sumPorts = new HashMap<>();
|
||||||
private Snmp snmp;
|
private Snmp snmp;
|
||||||
private CommunityTarget communityTarget;
|
private CommunityTarget communityTarget;
|
||||||
|
private long currentTrafficSum = 0;
|
||||||
|
private Boolean doRun = true;
|
||||||
|
|
||||||
private CommunityTarget getCommunityTarget(String host) {
|
private CommunityTarget getCommunityTarget(String host) {
|
||||||
CommunityTarget communityTarget = new CommunityTarget();
|
CommunityTarget communityTarget = new CommunityTarget();
|
||||||
communityTarget.setCommunity(new OctetString("public"));
|
communityTarget.setCommunity(new OctetString("public"));
|
||||||
communityTarget.setVersion(SnmpConstants.version2c);
|
communityTarget.setVersion(SnmpConstants.version2c);
|
||||||
communityTarget.setAddress(new UdpAddress(host));
|
communityTarget.setAddress(new UdpAddress(host));
|
||||||
communityTarget.setTimeout(100);
|
communityTarget.setTimeout(300);
|
||||||
return communityTarget;
|
return communityTarget;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,15 +49,44 @@ public class SnmpStatClient {
|
||||||
this.snmp = new Snmp(transportMapping);
|
this.snmp = new Snmp(transportMapping);
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
System.out.println("error: cannot get traffic from snmp target");
|
System.out.println("error: cannot get traffic from snmp target");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getTrafficSum() {
|
public void stopRunning() {
|
||||||
|
doRun = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
if (snmp == null || this.communityTarget == null) {
|
if (snmp == null || this.communityTarget == null) {
|
||||||
System.out.println("snmp error");
|
System.out.println("snmp error");
|
||||||
return 0;
|
doRun = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (doRun && !Thread.interrupted()) {
|
||||||
|
long sleepTill = System.currentTimeMillis() + napTime;
|
||||||
|
|
||||||
|
getSNMPValues();
|
||||||
|
|
||||||
|
try {
|
||||||
|
long remainingTime = sleepTill - System.currentTimeMillis();
|
||||||
|
if (remainingTime > 0)
|
||||||
|
Thread.sleep(remainingTime);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getSNMPValues() {
|
||||||
|
if (snmp == null || this.communityTarget == null) {
|
||||||
|
System.out.println("snmp error");
|
||||||
|
doRun = false;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
long sum = 0;
|
long sum = 0;
|
||||||
|
@ -87,7 +119,11 @@ public class SnmpStatClient {
|
||||||
sum += port;
|
sum += port;
|
||||||
}
|
}
|
||||||
|
|
||||||
return sum;
|
currentTrafficSum = sum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getTrafficSum() {
|
||||||
|
return currentTrafficSum;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue