node.js--UDP

1.UDP协议的特点以及应用场合。

UDP虽然传递数据不可靠,无连接,但是有传递速度快的特点,在传送音频、影视、图片时,少点数据无伤大雅,可以考虑用UDP。

2.node.js中的UDP应该怎么用。

node.js中UDP对应的模块是‘dgram‘,通过下面的方式引用UDP模块并创建UDP应用实例:

var dgram = require(‘dgram‘);
var udp = dgram.createSocket(‘udp4‘);

dgram实例对应的事件有:

‘listening’ : 开始监听

‘message‘ : 接受到消息

‘close‘ : 关闭连接

‘error‘ : 发生错误

对应的方法有:

send(message消息, message起始偏移, message结束偏移, 端口号, ip ) 发送消息

close() 关闭连接

那么UDP发送端和接收端怎么交互呢?通过下面的小例子说明。

发送端(发送消息给接收端,接受到发送端的反馈打印出来):

var dgram = require(‘dgram‘);
var client = dgram.createSocket(‘udp4‘);

var message = new Buffer(‘hi server‘);

client.send(message, 0, message.length, 41234, ‘127.0.0.1‘);

client.on(‘message‘, function(msg){
    console.info(‘client know server has got the message‘)
});

接收端(监听消息,收到消息后给发送端反馈):

var dgram = require(‘dgram‘);
var server = dgram.createSocket(‘udp4‘);

server.on(‘listening‘, function(){
    console.info(‘server is listening‘);
});

server.on(‘message‘, function(msg, rinfo){
    console.info(‘get message : ‘ + msg + ‘from‘ + rinfo.address + ‘:‘ + rinfo.port);
    var message = new Buffer(‘I got message! from server‘);
    server.send(message, 0, message.length, rinfo.port, rinfo.address);
});

server.bind(41234);
时间: 2024-10-08 16:11:11

node.js--UDP的相关文章

Node.js 参考学习地址

前段时间研究过Node.js 自从由于笔记本硬盘崩了之后就很少在家里搞程序了,但是很想学习之,只因最近在努力学习英文.技术之外的事也需要做好,我们毕竟不是为了技术而生,技术是我们生存的一门得力技能,唯如此方能活得精彩而丰富.人需要有更多的追求,去看看大千世界,所谓读万卷书不如行万里路,如果没有经世之才,又何必去假装大师.所以在此感谢提供如下Node.js文献的作者. Node.js的本质:  http://forjs.org/book/lkaK8WuNme/section/gygez8oTBPg

Node.js开发入门—UDP编程

Node.js也提供了UDP编程的能力,相关类库在"dgram"模块里. 与TCP不同,UDP是无连接的,不保障数据的可靠性,不过它的编程更为简单,有时候我们也需要它.比如做APP的统计或者日志或者流媒体,很多流媒体协议都会用到UDP,网上一搜一大堆. 使用UDP,如果你要发送数据,只需要知道对方的主机名(地址)和端口号,扔一消息过去即可.至于对方收不收得到,听天由命了.这就是数据报服务,类似快递或邮件. 我们这次来介绍一下Node.js里的UDP编程,我会提供一个UDP版本的echo

node.js中通过dgram数据报模块创建UDP服务器和客户端

node.js中 dgram 模块提供了udp数据包的socket实现,可以方便的创建udp服务器和客户端. 一.创建UDP服务器和客户端 服务端: const dgram = require('dgram'); //创建upd套接字 //参数一表示套接字类型,'udp4' 或 'udp6' //参数二表示事件监听函数,'message' 事件监听器 let server = dgram.createSocket('udp4'); //绑定端口和主机地址 server.bind(8888, '1

node.js 初体验

到新公司的这段时间学到了很多新东西,有好多东西需要去总结去探索,不过事情得一件一件来,今天咱们先从Node开始.注:以后出现的Node即node.js. 先搞点前戏热热场 - 为什么写这篇文章: 1.前段时间单位有新项目启动,服务端要做的工作不多也不算麻烦,就是处理一些中间层的服务,而且我们团队里面个个都会JavaScript,领导就决定试试服务器端的JavaScript,结果本人有幸被派去研究了几天Node,怀着鸡冻的心情开始了node.js的篇章,这篇文章也就是为这几天研究的总结. 2.一个

精通Node.js: 你应该阅读的书籍

最开始的几年,在应用服务器编程领域,我存在着一个选择.那时候,我已经远离了C一些时间,喜欢上JavaScript很长时间. 我喜欢JavaScript是因为JavaScript很轻,很优雅,很容易表达我的想法.并且如果我想实现一个可视化的内容,我可以在半小时内通过HTML Css写出一个漂亮的.生动的交互工具,然后把我任何想到的东西扔进去给别人看. 我很喜欢这样写javascript,虽然我知道道上这样写:JavaScript.但是javascript这样的写法让我觉得更加的轻快,虽然javas

Node.js面试题:侧重后端应用与对Node核心的理解

Node是搞后端的,不应该被被归为前端,更不应该用前端的观点去理解,去面试node开发人员.所以这份面试题大全,更侧重后端应用与对Node核心的理解. node开发技能图解 node 事件循环机制 起源 node正风生火起,很多介绍却停留在入门阶段,无法投入生产 node相关的高质量面试题更是少之又少,很难全面考查应聘者的node能力 许多文章在讲第三方类库,可是这些库质量差距较大,一旦遇到问题怎么办 必需的,全面了解node核心才能成为一名合格的node开发人员 目标与原则 前后端兼顾,更侧重

深入浅出Node.js(一):什么是Node.js

Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹.从在github的访问量超过Rails,到去年底Node.jsS创始人Ryan Dalh加盟Joyent获得企业资助,再到今年发布Windows移植版本,Node.js的前景获得了技术社区的肯定.InfoQ一直在关注Node.js的发展,在今年的两次Qcon大会(北京站和杭州站)都有专门的讲座.为了更好地促进Node.js在国内的技术推广,我们决定开设“深入浅出Node.js”专栏,邀请来自Node.js领域的布道师.

Node.js HTTP Server对象及GET、POST请求

上一博客学习了请求与响应,2次读2次写,但有一个问题就是客户端写入的时候怎么知道请求到达.所以HTTP Server对象出现了.它提供了实现HTTP服务器的基本框架.它可以监听端口的底层套接字和接收请求,然后发送响应给客户端连接的处理程序. 它提供了一下几个事件: request:当服务器收到客户端请求时触发.例如:function callback(request,response){}. connection:当一个新的TCP流建立时触发.例如:function callback (sock

node.js面试题大全-侧重后端应用与对Node核心的理解

Node是搞后端的,不应该被被归为前端,更不应该用前端的观点去理解,去面试node开发人员.所以这份面试题大全,更侧重后端应用与对Node核心的理解. github地址: https://github.com/jimuyouyou/node-interview-questions 注: 这人本人历时一星期完成的小作品,github里面对一些关键代码还有js源文件.直接node filename.js就可查看效果. 第一个版本,写的匆忙,能力有限,欢迎拍砖补充!后面持续更新会及时发布到github

Node.js开发入门—语音合成示例

出于项目需要,搞了一个语音合成(TTS)的小示例,使用的是OKVoice. 我想在PC上测试,OKVoice的快速接入API可以实现我的目的,文档在这里:http://dev.okvoice.com/file.php. 直接上代码吧,okVoiceTts.js,内容如下: var http = require('http'); var fs =require('fs'); var crypto = require('crypto'); var util = require('util'); va