Node 강의/주특기 플러스
1-3 간단한 데이터 교환
kagan-draca
2024. 10. 17. 16:28
1. Client => Server로 데이터 전송 및 Server => Client로 데이터 반환
client의
client.connect(PORT, HOST, () => {
console.log('Connected To The Server...');
});
부분에서
수정 후 :
client.connect(PORT, HOST, () => {
// 서버와 연결 과정
console.log('Connected To The Server...');
const message = 'Hello';
const buffer = Buffer.from(message);
// 서버 연결과 동시에 Hello라는 문자열을 버퍼에 담는다.
client.write(buffer);
// 서버에게 buffer를 data로 전송한다.
});
으로 "Hello"를 Buffer에 담아
client.write(buffer);
로 전송을 해줍니다.
그럼 Server에서는
socket.on('data', (data) => {
// 서버가 클라이언트로부터 데이터를 받을 때 마다 발생
// data는 버퍼 형태로 제공되며, 이를 문자열로 변환하거나 원하는 형식으로 처리할 수 있다.
console.log(data);
});
data 이벤트에서 매개변수로 data를 받아
console 로 data를 출력해줄 것 입니다.
현재 Client는 Server와 연결함과 동시에 "Hello"를 Server로 보내고 있습니다.
그래서, Server에 Client가 연결됨과 동시에 Buffer로 16진수화 된 "Hello"가 출력 되는걸 볼 수 있습니다.
추가적으로 Server는 다시 Client에게 "Hello"를 돌려주기 위해
socket.write(data);
로 받았던 data 내용을 해당 주소로 내용물을 그대로 되돌려 줘 보겠습니다.
수정 된 내용 :
socket.on('data', (data) => {
// 서버가 클라이언트로부터 데이터를 받을 때 마다 발생
// data는 버퍼 형태로 제공되며, 이를 문자열로 변환하거나 원하는 형식으로 처리할 수 있다.
console.log(data);
socket.write(data);
// data를 보낸 Client의 주소로 data를 그대로 되돌려 준다.
});
다시 Server와 Client를 실행시키면,
이전과 달리 Client에서도 16 진수로 변경된 "Hello"가 Buffer에 담겨 돌아오는 걸 볼 수 있습니다.
다음에는 Socket에서 했던 Evnet에 따른 Handler를 만들어 Client의 행동에 따른 Event와 Data를 약간 가공해 서버가 응답으로 될려주는 과정을 만들어보겠습니다.