CH.5 에서... 드디어 올 것이 왔다. TCP
악명이 높은 TCP 통신에 관한 챕터이다.
구현하기에 앞서, TCP 에서 사용하는 패킷과
패킷의 데이터 단위인 Buffer 에 대해 알아야 한다.
TCP 는 바이트 배열을 주고받으며 통신한다.
1바이트 = 8비트 단위의 데이터 배열이며,
8 비트는 16진수 2자리에 해당하고, 0~255의 값을 표현 할 수 있다. ( 00 ~ FF )
16진수를 단위를 쓰는 색상코드는 한번 쯤은 봤을 것인데,
이는 00 00 00 8비트 x3 의 코드이다.
게이머라면 알만한 프로그램인 치트 엔진에서도
데이터를 16진수 2자리 = 8비트 로 표현하는 것을 볼 수 있다.
다음은..
아무튼 Node 의 기본 문자열 처리방식인 UTF-16 (16비트) 인코딩보다 빠르다는게 중요
백문불여일견 !!
Hello 문자열을 아스키 코드 16진수로 표현하면 48 65 6c 6c 6f 가 되고,
Buffer.from('Hello') 를 실행해 보면, 버퍼 객체인
<Buffer 48 65 6c 6c 6f> 가 출력되는것을 확인 할 수 있다.
왜 'H ' 가 48이 되었는가 하면,
'H' 는 아스키 코드로 72 에 해당하고, 72 (10진) 을 16진수로 바꾸면 48이 되는것이다.
살짝 머리아픈 부분은, 막상 해당 인덱스를 찍어서 보면 72 즉, 10진수로 표시해준다는것
헷갈리지 말자 !
마무리
강의에서 설명해준 내용대로,
문자열 -> 버퍼 -> 전송 -> 문자열 의 과정을 수행해 보았다.
서버가 받는 문자열은 뒤집는 것 까지 !
'내일배움캠프' 카테고리의 다른 글
24.10.24 TIL 위치 동기화 (0) | 2024.10.24 |
---|---|
24.10.23 TIL 기본 세팅 (0) | 2024.10.23 |
24.10.17 TIL 검증이 뭘까 (0) | 2024.10.17 |
24.10.16 TIL 타워 디펜스 프로젝트 -완- (0) | 2024.10.16 |
24.10.14 TIL 타워 디펜스 프로젝트 (0) | 2024.10.14 |