반응형
주요 내용
- TCP 클라이언트 생성
- 서버에 접속 및 데이터 송신
- 표준 입력장치로부터 데이터를 받아 서버로 전송
- TCP 서버 생성
- 클라이언트 접속 처리
- 클라이언트로부터 데이터 수신 및 처리
TCP 클라이언트 생성
먼저, net 모듈을 사용하여 TCP 클라이언트를 생성한다.
const net = require('node:net');
const target = {
host: 'google.com',
port: 80
};
const socket = net.createConnection(target.port, target.host, function () {
console.log(`서버 접속. ${target.host}:${target.port}`);
socket.write('GET / HTTP/1.1\n\n');
});
socket.on('error', (err) => {
console.error(err);
});
createConnection 메서드를 사용하여 특정 호스트와 포트에 연결하며,
서버와 접속되면 클라이언트는 'GET / HTTP/1.1' 요청을 전송한다.
서버에 접속 및 데이터 송신
접속한 서버로부터 데이터를 수신할 때는 'data' 이벤트를 통해 처리할 수 있다.
socket.on('data', function (data) {
console.log(`서버 메시지: ${data.toString()}`);
});
서버에서 데이터가 도착하면 이벤트 리스너가 호출되어 수신된 데이터를 콘솔에 출력한다.
표준 입력장치로부터 데이터를 받아 서버로 전송
process.stdin.pipe(socket);
표준 입력장치의 데이터를 바로 socket으로 전달하기 위해 pipe 메서드를 사용한다.
TCP 서버 생성
net 모듈을 사용하여 TCP 서버를 생성한다.
const net = require('node:net');
const tcpServer = net.createServer(function (socket) {
console.log(socket.remoteAddress, '접속함.');
socket.on('error', function () {
console.log(socket.remoteAddress, '접속 종료.');
});
});
반응형
createServer 메서드를 사용하여 TCP 서버를 생성하고, 클라이언트가 접속했을 때 이벤트 리스너를 등록한다.
클라이언트 접속 처리 및 에러 이벤트 처리
클라이언트가 서버에 접속하면 해당 클라이언트에 대한 정보를 출력하고, 연결이 끊길 때에도 출력한다.
socket.on('error', function () {
console.log(socket.remoteAddress, '접속 종료.');
});
클라이언트로부터 데이터 수신 및 처리
클라이언트로부터 데이터를 받아 처리한다.
socket.on('data', function (data) {
console.log(data.toString());
socket.write(data);
});
클라이언트로부터 데이터를 받으면 해당 데이터를 출력하고, 원본 데이터를 그대로 전송하여 클라이언트에 전달한다.
서버 구동
마지막으로, TCP 서버를 특정 포트에서 구동하도록 설정한다.
tcpServer.listen(33112, function () {
console.log('TCP 서버 구동.');
});
반응형
'Node.js' 카테고리의 다른 글
[Node.js] HTTP서버 생성, 정적서버, 로그파일 (0) | 2023.08.15 |
---|---|
[Node.js] 파일 입출력, 표준 입출력 | Stream, pipe() (0) | 2023.08.13 |
[Node.js] 웹 서버 만드는 방법 | 웹 서버 생성, 포트 설정, 요청에 따른 파일 서비스, 에러 처리 (0) | 2023.08.12 |
[Node.js] ➍ 모듈(module) 사용법 | 클래스(class) (0) | 2023.08.11 |
[Node.js] ➌ 모듈(module) 사용법 | m4, m5 (0) | 2023.08.10 |