最近有一部分东西涉及到网络通信,导师推荐用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,一直不上手,突然有这个需求,开始看文档,需求才是动力。
时间: 2024-10-11 21:57:19