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教程之制作一个简单的文章发布系统
Nov 21 NodeJs
NodeJS实现阿里大鱼短信通知发送
Jan 17 NodeJs
NodeJs读取JSON文件格式化时的注意事项
Sep 25 NodeJs
详谈Angular路由与Nodejs路由的区别
Mar 05 NodeJs
nodejs实现简单的gulp打包
Dec 21 NodeJs
NodeJS父进程与子进程资源共享原理与实现方法
Mar 16 NodeJs
nodejs 十六进制字符串型数据与btye型数据相互转换
Jul 30 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 NodeJs
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
May 30 NodeJs
typescript nodejs 依赖注入实现方法代码详解
Jul 21 NodeJs
Nodejs 识别图片类型的方法
Aug 15 NodeJs
Nodejs libuv运行原理详解
Aug 21 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实现的随机广告显示代码
2007/06/14 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
php给数组赋值的实例方法
2019/09/26 PHP
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
基于vuejs实现一个todolist项目
2017/04/11 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
Python实现的rsa加密算法详解
2018/01/24 Python
浅谈Python基础—判断和循环
2019/03/22 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
python 实现多线程下载视频的代码
2019/11/15 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
Python定时器线程池原理详解
2020/02/26 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
中专生自我鉴定范文
2013/12/19 职场文书
驾驶员安全责任书范本
2014/07/24 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
上课讲话检讨书范文
2015/05/07 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
会计做账心得体会
2016/01/22 职场文书