TCP与UDP的数据通信
2014-12-13 08:34
253 查看
在Node.js中,提供了一个net模块与一个dgram模块,分别用于实现TCP与UDP的数据通信。
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');
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');
相关文章推荐
- Node.js权威指南 (7) - 实现基于TCP与UDP的数据通信
- 网络通信 TCP UDP 接收数据
- UDP和TCP通信机制(实现简单的数据发送与接收)
- TCP UDP多机通信无法接收到数据的问题
- Node.js实现基于TCP与UDP的数据通信
- iOS 一个在UDP/TCP通信时,对16进制、10进制、NSData等数据之间的转换发送等处理的工具类库,一行代码将16进制字符串轻松转换成UDP需要的指令数据
- node.js-TCP与UDP的数据通信
- QT中TCP/UDP通信数据的组织
- QT中TCP/UDP通信数据的组织
- [gcc编程] socket编程——TCP/UDP数据传输
- 在RL-TCPnet下的UDP通信
- TCP通信的时候,发送大量数据会死机
- Linux网络通信实例(TCP和UDP)
- UDP/TCP穿越NAT的P2P通信方法研究(UDP/TCP打洞 Hole Punching
- C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP)
- C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP),多多宜善。
- C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP),多多宜善。
- 数据的传递:TCP/UDP数据格式
- UDP/TCP穿越NAT的P2P通信方法研究(UDP/TCP打洞 Hole Punching)【转】
- java socket通信 TCP UDP