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实用示例 缩址还原
Dec 28 NodeJs
nodejs学习笔记之路由
Mar 27 NodeJs
nodejs获取微信小程序带参数二维码实现代码
Apr 12 NodeJs
nodejs开发微信小程序实现密码加密
Jul 11 NodeJs
详解nodejs中express搭建权限管理系统
Sep 15 NodeJs
详解使用PM2管理nodejs进程
Oct 24 NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 NodeJs
nodejs中密码加密处理操作详解
Mar 20 NodeJs
详解nodejs通过响应回写的方式渲染页面资源
Apr 07 NodeJs
详解nodejs http请求相关总结
Mar 31 NodeJs
NodeJs crypto加密制作token的实现代码
Nov 15 NodeJs
nodejs制作小爬虫功能示例
Feb 24 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中的字符串函数
2006/11/24 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
2014/02/24 PHP
php递归创建目录的方法
2015/02/02 PHP
分享PHP守护进程类
2015/12/30 PHP
js表数据排序 sort table data
2009/02/18 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
React如何避免重渲染
2018/04/10 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
微信头像地址失效踩坑记附带解决方案
2019/09/23 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
three.js 如何制作魔方
2020/07/31 Javascript
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
Python中拆分字符串的操作方法
2019/07/23 Python
Django实现auth模块下的登录注册与注销功能
2019/10/10 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
html5 worker 实例(二) 图片变换效果
2013/06/24 HTML / CSS
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
非功能性需求都包括哪些方面
2013/10/29 面试题
高级护理专业大学生求职信
2013/10/24 职场文书
平面设计师的工作职责
2013/11/21 职场文书
节能减排倡议书
2014/04/15 职场文书
体育馆的标语
2014/06/24 职场文书
私人委托书格式
2014/09/10 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
关于做家务的心得体会
2016/01/23 职场文书