2
我正在我的课堂上做一个网络模拟应用程序。我已经完成了整个代码,但是我在控制发送流量的速度方面遇到了麻烦。我怎样才能控制Java(Jpcap)中的流量速度(字节发送)
应用程序的用户可以输入他想要生成的期望速度(例如10 MiB/s)。我以某种非常糟糕的方式来做这个控制。我在Java中创建了一个具有特定字节(例如8192字节)的UDP/TCP包。知道了这一点,我做了一个持续一秒的线程,并且一直检查它是否已经达到它的极限(以秒或大小为单位)并且一直发送,直到它达到。以下算法解释了我的糟糕想法。
sendWithLimit (byte limit, JpcapSender sender, Packet pkg) {
byte current = 0;
long timeStamp = System.currentTimeMillis();
while ((current < limit) && (System.currentTimeMillis() - timeStamp < 1000))
sender.send(pkg);
current += 8192;
}
}
我认为,这种做法是相当差的,有没有更好的办法来控制这个???