수업 중에 네트워크 시뮬레이션 응용 프로그램을 만들고 있습니다. 이미 전체 코드를 작성했지만 전송 된 트래픽의 속도를 제어하는 데 문제가 있습니다.Java (Jpcap)에서 트래픽 속도 (바이트 전송)를 제어하는 방법
앱 사용자는 생성하려는 원하는 속도 (예 : 10 MiB/s)를 입력 할 수 있습니다. 나는이 통제를 정말로 진절머리 나는 방식으로하고 있습니다. 특정 바이트 (예 : 8192 바이트)가있는 Java에서 UDP/TCP 패키지를 만들었습니다. 이걸 알면 마지막 1 초가 걸린 스레드를 만들고 이미 한계에 도달했는지 (초 또는 크기) 있는지 확인하고 계속 도달 할 때까지 계속 전송합니다. 다음 알고리즘은 내 엉터리 아이디어를 설명합니다.
이 방법은 매우 가난한 것을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;
}
}
내가 생각
,이를 제어 할 수있는 더 좋은 방법이있다 ???