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 相关文章推荐
基于promise.js实现nodejs的promises库
Jul 06 NodeJs
NodeJs基本语法和类型
Feb 13 NodeJs
详解nodejs操作mongodb数据库封装DB类
Apr 10 NodeJs
详解nodejs微信公众号开发——6.自定义菜单
Apr 13 NodeJs
nodejs制作爬虫实现批量下载图片
May 19 NodeJs
详解nodejs的express如何自动生成项目框架
Jul 12 NodeJs
原生nodejs使用websocket代码分享
Apr 07 NodeJs
NodeJS实现自定义流的方法
Aug 01 NodeJs
Nodejs Express 通过log4js写日志到Logstash(ELK)
Aug 30 NodeJs
NodeJS加密解密及node-rsa加密解密用法详解
Oct 12 NodeJs
nodejs 使用http进行post或get请求的实例(携带cookie)
Jan 03 NodeJs
图解NodeJS实现登录注册功能
Sep 16 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
由php的call_user_func传reference引发的思考
2010/07/23 PHP
php中OR与|| AND与&&的区别总结
2013/10/26 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
js数组操作学习总结
2013/11/04 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
JS获取月份最后天数、最大天数与某日周数的方法
2015/12/08 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python程序设计入门(5)类的使用简介
2014/06/16 Python
跟老齐学Python之list和str比较
2014/09/20 Python
详解Django中的ifequal和ifnotequal标签使用
2015/07/16 Python
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
python应用文件读取与登录注册功能
2019/09/23 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
上海某公司.net方向笔试题
2014/09/14 面试题
教师个人自我评价范文
2014/04/13 职场文书
经贸专业毕业生求职信范文
2014/05/01 职场文书
蛋糕店创业计划书
2014/05/06 职场文书
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
2021/10/16 Python
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技