nodejs로 서버만들어서 요청 만들기

SangHoon Lee·2020년 5월 14일
0
post-thumbnail

이번에는 nodejs로 서버를 만들어서 요청과 응답을 체크해서 시간까지 측정 해 보려고 합니다.

js파일은 두개로 , 클라이언트.js 파일과, 서버.js 파일 두개로 나뉘어져있습니다.

server.js

var net = require('net');

var arr = [];
var count = 0;
var output = 1;
var timecount = 0;

var server = net.createServer(function(socket) {

    socket.on('data', function(data) {
        console.time();
        for (let i = 0; i < 100000; i++) {
            arr.push(i);
        }

        for (let i = 0; i < 100000; i++) {
            if (arr[i] % 3 == 0 && arr[i] != 0) {
                arr[i] = "짝";
            } else {
                arr[i] = Math.floor(Math.random() * 100000) + 1
            }
        }
        output += timecount;
        timecount++;
        console.timeEnd();
        console.log('total time : ' + output / timecount);
        console.log('request: ' + arr[count]);
        console.log(socket.address().address + " connected");
        count++;
    });

    socket.on('close', function() {
        console.log('client disconnet');
    })

    socket.write('server connect success');
});

server.on('error', function(err) {
    console.log('err' + err);
});
server.listen(8000, function() {
    console.log('listeing on 8000');
})

서버.js 파일입니다. 포트번호는 8000번으로 잡았습니다. address는 127.0.0.1으로 잡는것을 확인 하였습니다.
아 그리고 살짝 연산을 추가해서 반응이 어떤지 궁금해서 한번 만들어봤습니다.
그리고 다양한 예외처리까지 다 하였습니다.

        for (let i = 0; i < 100000; i++) {
            arr.push(i);
        }

        for (let i = 0; i < 100000; i++) {
            if (arr[i] % 3 == 0 && arr[i] != 0) {
                arr[i] = "짝";
            } else {
                arr[i] = Math.floor(Math.random() * 100000) + 1
            }
        }

그냥 연산코드인데, 3 6 9 가 생각나서 한번 만들어봤습니다.

console.time();
console.timeEnd();

시간을 측정하기위해 사용하였습니다.
default 시간 값과, 연산하고 난 후의 시간초 경과를 체크하였습니다.

var net = require('net');

var output = 1;
var timecount = 0;


var socket = net.connect({ port: 8000 });


socket.on('connect', function() {
    setInterval(function() {
        console.log(socket.address().address + "   response");
        console.time();
        socket.write('request check')
        output += timecount;
        timecount++;
        if (timecount == 10) {
            console.log('10 초 평균: ' + output / timecount);
        }
        console.timeEnd();
    }, 1000);
});

socket.on('data', function(chunk) {
    console.log('receive ' + chunk);
});

socket.on('end', function() {
    console.log(output / timecount);
});

socket.on('error', function(err) {
    console.log(err);
});

socket.on('timeout', function() {
    console.log('connected timeout');
});

클라이언트.js 파일입니다. 포트번호는 위의 서버와 같은 8000번으로 하였습니다. (당연한거지만, 서버와 포트번호 맞지않으면 접속 불가...)

예외처리는 다 하였고, 클라이언트쪽에서는 반응시간만 체크하였습니다.

동작과정을 보여드리겠습니다.

두 파일을 같이 실행해야 실행이 됩니다. (둘중 하나만 실행은 안됨)

이렇게 두 파일을 같이 실행하면 서로 연결되어서 요청을 주고 받습니다.

시간은 1초간격으로 체크하도록 하였으며, 10초가 경과했을때 평균값이 얼마나 나오는지 나오게 해놓았습니다.

마지막으로 이렇게 nodejs로 서버를 만들어보면서 직접 만들고 연습해보는건 처음 해본것이라, 많이 어려웠고 인터넷을 이것저것 참고하면서 공부했던 것 같습니다. 아직은 많이 부족하다고 느끼기 때문에, 학업에 있어 더 노력해야겠다는 필요성이 있다고 생각하고, 더 열심히 해야겠습니다.

profile
C++ 공부하고있는 대학생입니다.

0개의 댓글