首页 > 代码库 > NodeJS Socket通信

NodeJS Socket通信

最近有一部分东西涉及到网络通信,导师推荐用C语言,自己之前也接触过。不过突然想到了NodeJS,试用了下,果然NodeJS大法好。

NodeJS的中文版API看这里:http://nodeapi.ucdok.com/#/api/

 

Socket通信使用Net模块。

首先,写服务端部分:

    var net = require(‘net‘);    //create tcp server.    var server = net.createServer(function(socket) {        socket.write(‘hello client!‘);    });        //set listen port.    server.listen(1337, function() {        console.log(‘server listened on port 1337...\r\n‘);    });

require net模块,然后创建server,设置监听端口。这样就开启了服务器。

我们还在创建服务器的回调函数里写了一条信息。

 

然后创建客户端:

    var net = require(‘net‘);    var client = net.connect({         port: 1337,        host: ‘localhost‘    }, function() {        client.write(‘hello server!‘);     });    client.on(‘data‘, function(data) {       console.log(data.toString());    });

同样包含net模块,创建客户端,在回调函数里也写了一条信息。

监听data事件,接收服务端的信息。

 

先运行服务端后,在运行客户端,客户端就会输出hello client!。

那么服务端如何接收客户端的信息呢?

 

我们需要让server监听 connection事件

    server.on(‘connection‘, function(client) {        client.name = client.remoteAddress + ‘:‘ + client.remotePort;        terminal.on(‘data‘, function(data) {            console.log(‘data from ‘ + client.name + ‘:‘ + data.toString())        });    });

每当有客户端连接上的时候,查看来源并且打印相应的信息。

 

实现通信就是这么简单,NodeJS封装的很好了,具体再查API文档即可,在通信中需要将信息从数据库读取或者写入数据库,如果使用MySQL,

推荐node-mysql,这篇博文不错:http://blog.fens.me/nodejs-mysql-intro/

 

其实之前看过node,一直不上手,突然有这个需求,开始看文档,需求才是动力。

 

NodeJS Socket通信