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,一直不上手,突然有这个需求,开始看文档,需求才是动力。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。