Nodejs实现的一个简单udp广播服务器、客户端


Posted in NodeJs onSeptember 25, 2014

nodejs发送udp广播还是蛮简单的,我们先写个服务器用于接收广播数据,代码如下:

var dgram = require("dgram");
var server = dgram.createSocket("udp4");
server.on("error", function (err) {

  console.log("server error:\n" + err.stack);

  server.close();

});
server.on("message", function (msg, rinfo) {

  console.log("server got: " + msg + " from " +

    rinfo.address + ":" + rinfo.port);

});
server.on("listening", function () {

  var address = server.address();

  console.log("server listening " +

      address.address + ":" + address.port);

});
server.bind(41234);

然后写个客户端程序,发送广播消息,代码如下:

var dgram = require("dgram");
var socket = dgram.createSocket("udp4");

socket.bind(function () {

  socket.setBroadcast(true);

});
var message = new Buffer("Hi");

socket.send(message, 0, message.length, 41234, '255.255.255.255', function(err, bytes) {

  socket.close();

});

这里需要注意的是socket.setBroadcast(true);必须在绑定socket成功后才能调用,否则会报Error: setBroadcast EBADF的错误。

客户端发送广播还是蛮简单的,设置好需要发送的数据和端口等信息就OK了。

NodeJs 相关文章推荐
nodejs中exports与module.exports的区别详细介绍
Jan 14 NodeJs
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
Jul 15 NodeJs
NodeJS中Buffer模块详解
Jan 07 NodeJs
Nodejs进阶:express+session实现简易登录身份认证
Apr 24 NodeJs
Nodejs之TCP服务端与客户端聊天程序详解
Jul 07 NodeJs
nodejs基于express实现文件上传的方法
Mar 19 NodeJs
CentOS7中源码编译安装NodeJS的完整步骤
Oct 13 NodeJs
Nodejs中获取当前函数被调用的行数及文件名详解
Dec 12 NodeJs
NVM安装nodejs的方法实用步骤
Jan 16 NodeJs
nodejs简单抓包工具使用详解
Aug 23 NodeJs
nodejs文件夹深层复制功能
Sep 03 NodeJs
Node.js实现爬取网站图片的示例代码
Apr 04 NodeJs
Nodejs异步回调的优雅处理方法
Sep 25 #NodeJs
nodejs命令行参数处理模块commander使用实例
Sep 17 #NodeJs
nodejs npm package.json中文文档
Sep 04 #NodeJs
使用Nodejs开发微信公众号后台服务实例
Sep 03 #NodeJs
Nodejs+express+html5 实现拖拽上传
Aug 08 #NodeJs
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
Aug 03 #NodeJs
NodeJS学习笔记之网络编程
Aug 03 #NodeJs
You might like
编译问题
2006/10/09 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
关闭时刷新父窗口两种方法
2014/05/07 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
AngularJS学习第二篇 AngularJS依赖注入
2017/02/13 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
Python如何import文件夹下的文件(实现方法)
2017/01/24 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
Python学习入门之区块链详解
2017/07/25 Python
Python之自动获取公网IP的实例讲解
2017/10/01 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
python版百度语音识别功能
2019/07/09 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
2019/10/24 Python
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
中间件分为哪几类
2012/03/14 面试题
移动通信专业自荐信范文
2013/11/12 职场文书
大学生自我鉴定
2013/12/16 职场文书
大三学生入党思想汇报
2014/01/02 职场文书
求职毕业生自荐书
2014/02/08 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
护校行动方案
2014/05/31 职场文书
新农村建设标语
2014/06/24 职场文书
2015元旦节寄语
2014/12/08 职场文书
音乐课外活动总结
2015/05/09 职场文书
运动会广播稿50字
2015/08/19 职场文书
python中的None与NULL用法说明
2021/05/25 Python