node.js 연구 노트--API 버퍼

참고: 이 블로그는 Scott의 강의 덕분에 Node.js 공격의 기본 사항을 학습할 때 참고할 수 있는 연구 노트 입니다(2).

js 문자열은 UTF-8로 저장되기 때문에 버퍼는 nodejs에서 바이너리 데이터를 처리하고 바이너리를 처리하는 기능은 매우 약합니다. 네트워크 계층은 요청과 응답을 바이너리로 처리하므로 nodejs는 바이너리 데이터를 저장하기 위한 버퍼 영역으로 버퍼 인터페이스를 가지며 버퍼 영역에서 데이터를 처리하기 위한 몇 가지 방법을 제공합니다. 버퍼는 nodejs에서 전역적으로 액세스할 수 있으며 참조 및 로드에 필요하지 않습니다.

Buffer는 자체 속성과 정적 메소드를 가진 객체이자 생성자입니다.Buffer new를 통해 생성된 인스턴스는 실제로 V8 엔진의 메모리 섹션을 나타내며 실제로 멤버가 모두 정수 값인 배열입니다. 버퍼는 매개변수를 전달할 때 형식을 지정해야 합니다. 기본값은 UTF-8입니다.

명령줄에 다음을 입력합니다.

new Buffer('Hello 慕课网');

반품:

$ <Buffer 48 65 6c 6c 6f 20 e6 85 95 e8 af be e7 bd 91>

기본 UTF-8 때문입니다. 인코딩 형식을 변경할 수도 있습니다.

new Buffer('Hello 慕课网', 'base64');

반품:

$ <Buffer 1d e9 65 a1 44>

base64 형식의 문자열입니다.

버퍼는 다음과 같은 방법으로 메모리를 할당할 수 있습니다.

var buf = new Buffer(8);  //分配长度为8的内存
buf.length  //打印长度

또한 버퍼를 인스턴스화하는 세 가지 방법이 있습니다.

1. 매개변수를 직접 전달하여 인스턴스화

var buf2 = new Buffer('12345678');
console.log(buf2)

반품:

$ <Buffer 31 32 33 34 35 36 37 38>

2. 메모리 길이를 지정하여 인스턴스화할 할당된 메모리에 데이터를 씁니다.

var buf3 = new Buffer(7);
buf.write('12345678');
console.log(buf3)

반품:

$ <Buffer 31 32 33 34 35 36 37>

여덟 번째 비트가 사라지므로 Buffer의 길이가 지정되는 한 초과 기록은 캐시되지 않습니다.

3. 배열로 초기화

var buf4 = new Buffer([1,2,3,4]);
console.log(buf4)

반품:

$ <Buffer 01 02 03 04>

아래 첨자를 사용하여 배열의 값에 액세스할 수 있습니다.

console.log(buf4[1]) //取数组的第二位

반품:

$ 2

버퍼 배열에서 들어오는 십진수가 [1, 2.33 ,3 ,4]와 같이 직접 반올림되는 경우 두 번째 숫자의 값은 여전히 ​​2입니다.

おすすめ

転載: blog.csdn.net/sriting/article/details/79632616
おすすめ