Нарезка массивов для заголовка UDP влияет на производительность Java - PullRequest
0 голосов
/ 28 февраля 2019

Я пишу основную программу VoIP на Java.В моем потоке отправителя у меня есть код для записи в байтовый массив, упаковки пакета дейтаграммы только с данными, отправки, получения и воспроизведения.Работает без нареканий, звучит фантастически.Теперь я пытаюсь добавить 2-байтовый заголовок к данным, прежде чем пакет будет отправлен.Я делаю это с:

ByteBuffer unwrapEncrypt = ByteBuffer.allocate(block.length+2);
short authKey = 10;
unwrapEncrypt.putShort(authKey);

перед тем, как поместить свой 512-байтовый аудиоблок в ByteBuffer и отправить его.А на принимающей стороне:

ByteBuffer decryptedBlock = null;

short authKey = 10;

if(unwrapDecrypt.getShort(0) == authKey) {
    unwrapDecrypt.position(2);
    unwrapDecrypt.limit(514);
    decryptedBlock = unwrapDecrypt.slice();
}

По какой-то причине это превращает мой звук в праздник абсолютного шипения и едва читается.Есть ли лучший способ добавить, а затем удалить заголовок?Я готов попробовать что-нибудь сделать.

...