На клиенте мне кажется, что timeinterval
всегда будет 0. Было ли это намерением?Вы говорите секунды в коде, но пропускаете * 1000
.
timeInterval = 1 / ( noOfPacketsToBeSent );
И затем вы звоните Thread.sleep((long) timeinterval)
.Так как sleep()
занимает long
, то это самое большее 1 мс и обычно (я подозреваю) 0 мс.Сон имеет разрешение только в миллисекундах.Если вам нужно разрешение в наносекундах, вам нужно будет сделать что-то вроде:
TimeUnit timeUnit = TimeUnit.NANOSECONDS;
...
timeUnit.sleep(50);
Я подозреваю, что ваш ЦП ограничивает ваши запуски, когда и клиент, и сервер находятся в одном окне.Когда они находятся в разных ящиках, то происходит резервное копирование, потому что клиент фактически затопляет сервер из-за неправильного времени ожидания.
По крайней мере, это мое лучшее предположение.