2012-04-16 13 views
0

ノードjsのTCPサーバーを使用してクライアントにデータを送信すると問題が発生します。 が、これは私のコードノードjsの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

関連する問題