Как преобразовать байты в целые числа в Javascript? - PullRequest
0 голосов
/ 18 июня 2020

Я запускаю сервер на Python, который отправляет данные на JavaScript. Однако этот сервер может отправлять только байты. Мне нужны данные в целочисленной форме. Есть ли способ преобразовать это в Javascript.

Вот строка кода, которая получает данные. Как преобразовать evt.data из байтов в целые числа. Я получаю от Python, это буква «b», за которой следует номер. Пример: b'120 '

ws.onmessage = function (evt) {
                  var received_msg = evt.data;

Вот строка кода, которая используется для отправки данных из Python. Это UDP и, к сожалению, может отправлять только байты. Я отправляю данные с сервера python клиенту python, а затем на сервер веб-сокета python. Этот сервер веб-сокетов python, к сожалению, не может отправлять байты, преобразованные в целые числа с помощью метода int ().

sock.sendto(bytes(MESSAGE, "utf-8"), (ip_address, UDP_PORT))

Что мне нужно делать? Заранее спасибо! :)

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Javascript не поддерживает 64-битные целые числа. Тем не менее, эта функция должна работать с 32-битными целыми числами со знаком:

var byteArrayToInt = function(byteArray) {
    var value = 0;
    for (var i = byteArray.length - 1; i >= 0; i--) {
        value = (value * 256) + byteArray[i];
    }

    return value;
};
0 голосов
/ 18 июня 2020

Надеюсь, это поможет

function binToInt(bin){
	return parseInt(bin, 2);
}

console.log(binToInt("00101001"));	//Outputs 41
...