package sockslib.common.net;
import java.net.DatagramPacket;
/**
* @author Youchao Feng
* @version 1.0
* @date Sep 23, 2015 11:20 AM
*/
public class NetworkMonitor implements SocketMonitor, DatagramSocketMonitor {
private long receiveTCP = 0;
private long receiveUDP = 0;
private long sendTCP = 0;
private long sendUDP = 0;
@Override
public void onRead(byte[] bytes) {
receiveTCP += bytes.length;
}
@Override
public void onWrite(byte[] bytes) {
sendTCP += bytes.length;
}
@Override
public void onSend(DatagramPacket datagramPacket) {
sendUDP += datagramPacket.getLength();
}
@Override
public void onReceive(DatagramPacket datagramPacket) {
receiveUDP += datagramPacket.getLength();
}
public long getTotalReceive() {
return receiveTCP + receiveUDP;
}
public long getTotalSend() {
return sendTCP + sendUDP;
}
public long getTotal() {
return getTotalReceive() + getTotalSend();
}
public long getReceiveTCP() {
return receiveTCP;
}
public long getReceiveUDP() {
return receiveUDP;
}
public long getSendTCP() {
return sendTCP;
}
public long getSendUDP() {
return sendUDP;
}
@Override
public String toString() {
return "NetworkMonitor{" +
"sendTCP=" + sendTCP +
", receiveTCP=" + receiveTCP +
", sendUDP=" + sendUDP +
", receiveUDP=" + receiveUDP +
'}';
}
}