2012-04-16 6 views
0

노드 js의 TCP 서버를 사용하여 클라이언트에 데이터를 보낼 때 문제가 있습니다. 이 내 코드nodejs TCP/IP의 r n r n 문자는 무엇입니까

var net = require('net'); 

var server = net.createServer(function (socket) { 
    // We have a connection - a socket object is assigned to the connection automatically 
    console.log('CONNECTED: ' + socket.remoteAddress +':'+ socket.remotePort); 

    socket.on('data', function(data) {  
     var datas = JSON.parse(data); 
     console.log('DATA ' + socket.remoteAddress + ': ' + data);  
     //socket.write("kenapa ya/HTTP/1.0\r\n\r\n"); 
    }).on('connect', function() { 
     // Manually write an HTTP request. 
     var data = { 
     "name" : "test", 
     "args" : { 
      "data":[{ 
       "a":1 
      }] 
      } 
     }; 
     socket.setEncoding("utf8"); 
     socket.write(JSON.stringify(data) + "\r\n\r\n"); 

    }).on('end', function() { 
     console.log('DONE'); 
    }); 


}); 

server.listen(1337, '127.0.0.1'); 
console.log("server is listen on 1337"); 

실제로 코드 내 클라이언트 소켓에 작업을하지만, 내가 해요 서버에서 \r\n\r\n 너무 오래 응답하지 않고 socket.write(JSON.stringify(data));하려고 할 때 내가 서버에서 메시지를받을 수 없다.

아무도 모릅니다. 무슨 효과가이 코드 \r\n\r\n? 저는 PHP를 사용하여 소켓 클라이언트를 만듭니다.

+0

나에게 의미가 없습니다. 다른 쪽에서 메시지를 파싱하는 방법에 대한 문제가있을 수 있습니다. – mihai

답변

2

CRNL은 HTTP 헤더와 본문 사이의 구분 기호입니다. HTTP RFC을 참조하십시오.

+2

CRNL이 아닌 CRLF입니다. :-) – nothrow

+0

좋습니다.하지만 둘 다 0x0d 0x0a입니다. – ceving

관련 문제