2012-07-19 4 views
2

NodeJS TCP 서버를 작성하려고 시도하면 클라이언트 입력을 읽고 적절하게 작동합니다.NodeJS TCP 서버에서 클라이언트 데이터 입력 읽기

데이터를 읽을 수있는 방법을 알고 싶습니다. 따라서 처리를 수행하기위한 조건부를 설정할 수 있습니다.

var net = require('net'); 
var server = net.createServer(function (socket) { 

socket.on('data', function(data) { 
    buf = new Buffer(256); 
    len = buf.write(data.toString()); 

    if (buf.toString('utf8', 0, len) === "test"){ 
     console.log("you typed test"); 
    } 

    console.log(len + " bytes: " + buf.toString('utf8', 0, len)); 
}); 
socket.write("Connected to server.\r\n"); 
}); 
server.listen(8080, "127.0.0.1"); 

나는 여기에 입력 된 값을 출력하고 있습니다 : console.log(len + " bytes: " + buf.toString('utf8', 0, len)); 을하지만 내이 로그 위의 진술은, 값 '테스트'를 일치 밤은 실제로 클라이언트 단말기 창에서 '테스트'를 입력 할 때 경우.

이 어떤 도움에 감사드립니다

+2

데이터는 당신이 필요하므로'data'' 이벤트가 청크에서 수신 버퍼를 구축한다. 그런 다음''end '' 이벤트에 대한 테스트를 수행 할 수 있습니다. 이 질문을 참조하십시오 http://stackoverflow.com/questions/6412944/node-js-read-in-buffered-data –

+0

@scriptfromscratch 왜 그것을 답변으로 추가하지 않으므로 그것이 맞으면 받아 들일 수 있습니까? –

+0

순수하게 시간 부족 @JoachimPileborg. 내 대답은 코드 샘플을 남기고 싶었지만 사무실을 다 써야했다. :) –

답변

6

내가 toString() 방법을 사용하여 밖으로 일 크리스 :

socket.on('data', function(data) { 
    var response = data.toString().trim(); 

    if (/disconnect/.test(response)) { 
    console.log("Client is diconnecting."); 
    socket.end('Disconnecting you now.\r\n'); 
    } 
}); 

socket.on('end', function() { 
    console.log('client disconnected'); 
});