Есть сокеты на Java. Все данные передаются в виде объектов(хотел как проще, а вышло как обычно)
outputStream.writeObject(new Ping());
Есть задача реализовать шейпер(или подобное).
Как я вижу работу шейпера:
long x = System.nanoTime();
long BytesWrite = outputStream.writeObject(new Ping());
while((BytesWrite / (System.nanoTime() - x))>1000)
{
sleep(1);
}
Проблема в получении BytesWrite
Решаема ли она при текущем подходе?(и как?)
Есть ли смысл отказываться от такой модели и городить "свой" формат пакетов и их отправки?
Есть ли в Java что то встроенное для подобных извращений(шейпинг трафика)?
Нужно создавать ObjectOutputStream
каждый раз когда передаете объект. В качестве базового потока использовать ByteArrayOutputStream
(тоже каждый раз новый). Вытаскивать из него массив байт и передавать его в реальный поток.
PS: Ваш текущий код приведет к утечке памяти так как ObjectOutputStream
запоминает все отправленные объекты.
PPS: Стандартная сериализация ужасна, постарайтесь избегать ее.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Запускаю программу в режиме отладкиПрограмма выполняется, но в консоли надпись красным цветом:
Устанавливал jdk 12 и 8, потом удалил 8, но система запомнила только путь к 8
Мне нужно что бы ввод пользователя переходил в нижний регистр, тем самым если его спросят: "Выйти?(y/n): " и он ответит - "Y" те большими буквами,...