TCP与UDP的数据通信

Node.js中,提供了一个net模块与一个dgram模块,分别用于实现TCPUDP的数据通信。

TCP是一种基于链接的协议,再进行通信前,首先要求客户端与服务器建立一条通信的链接。二UDP是一种面向非链接的协议,再进行通信前,不要求首先建立客户端与服务器端的链接,可以直接把数据包发送给对方。基于这个原因,UDP也是一种不可靠的协议,但其传输速率更快,因此更适合实时通信的场合。

使用net模块实现基于TCP的数据通信

var net = require('net');

var server = net.createServer(function(socket){

      console.log(socket.address());

 

 });

server.listen(2000,'localhost', function(){

      console.log('开始监听');

});

使用dgram模块实现基于UDP的数据通信

客户端:

var dgram = require('dgram');

var message = new Buffer('你好。');

var client = dgram.createSocket('udp4');

client.send(message, 0, message.length,2000, 'localhost', function(err, bytes){

       if(err) console.log('发送数据失败');

       elseconsole.log('已发送 %d 字节数据', bytes);

});

client.on('message', function(msg, rinfo){

       console.log('%s',msg);

       console.log('%s',rinfo.address);

       console.log('%s',rinfo.port);

});

服务器端:

var dgram = require('dgram');

var server = dgram.createSocket('udp4');

server.on('message', function(msg, rinfo){

       console.log('已接收客户端发送的数据:' + msg);

       console.log('客户端地址信息为:%j', rinfo);

       varbuf = new Buffer('确认信息:' + msg);

       server.send(buf,0, buf.length, rinfo.port, rinfo.address);

});

server.on('listening', function(){

       varaddress = server.address();

       console.log('服务器开始监听,地址信息为%j', address);

});

server.bind(2000, 'localhost');

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章