初学Node.JS net.createServer的例子

我是一个老的PERL编码器,试图学习node.JS编程。 我有关于我正在写的代码来创build服务器和客户端应用程序之间的套接字连接的问题。

下面的代码工作。 但我不知道如何接受从客户端发送到服务器的数据。

基本上我想做的事很简单。 客户端连接到侦听套接字的服务器,发送服务器读取的一些信息,然后将信息发送回客户端。 我不理解的唯一部分是如何让服务器端读取/接受/显示从客户端发送的数据string。

有人能指点我的方向吗? 提前谢谢你的帮助。

(对于无知,我很抱歉)

这里是服务器端代码:

var net = require('net'); var server = net.createServer(function(socket) { // confirm socket connection from client console.log((new Date())+'A client connected to server...'); socket.on('data', function(data) { var json = JSON.parse(data.toString()); console.log(json) }); // send info to client socket.write('Echo from server: NODE.JS Server \r\n'); socket.pipe(socket); socket.end(); console.log('The client has disconnected...\n'); }).listen(10337, '192.168.100.1'); 

这里是客户端代码:

 var net = require('net'); var client = new net.Socket(); client.connect(10337, '192.168.100.1', function() { console.log('Connected'); // acknowledge socket connection client.write('Hello, server! Love, Client.'); // send info to Server }); client.on('data', function(data) { console.log('Received: ' + data); // display info received from server client.destroy(); // kill client after server's response }); client.on('close', function() { console.log('Connection closed'); }); 

当我这样做的时候,我在服务器上得到一个错误,说从客户端发送的string是一个无效的标记。 这里是错误信息。

 undefined:1 Hello, server! Love, Client. ^ SyntaxError: Unexpected token H at Object.parse (native) at Socket.<anonymous> (/root/nodejs/server-example.js:7:19) at Socket.emit (events.js:117:20) at Socket.<anonymous> (_stream_readable.js:765:14) at Socket.emit (events.js:92:17) at emitReadable_ (_stream_readable.js:427:10) at emitReadable (_stream_readable.js:423:5) at readableAddChunk (_stream_readable.js:166:9) at Socket.Readable.push (_stream_readable.js:128:10) at TCP.onread (net.js:529:21) 

或者处理写入到套接字的JSON和string:

 socket.on('data', function(data) { try { var obj = JSON.parse(data.toString()) console.log(JSON.stringify(obj, null, 4)) } catch(e) { var string = data.toString() console.log(string) } }) 

我当时很蠢 我find了我正在寻找的答案。 而且非常简单。

这是我应该写的代替JSON语句

  socket.on('data', function(data) { var string = (data.toString()); console.log(string) });