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调用cmd命令实现复制目录
May 04 NodeJs
快速掌握Node.js之Window下配置NodeJs环境
Mar 21 NodeJs
NodeJS的Promise的用法解析
May 05 NodeJs
nodejs multer实现文件上传与下载
May 10 NodeJs
详解使用vscode+es6写nodejs服务端调试配置
Sep 21 NodeJs
NodeJs搭建本地服务器之使用手机访问的实例讲解
May 12 NodeJs
基于nodejs res.end和res.send的区别
May 14 NodeJs
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
Jul 31 NodeJs
nodejs基础之多进程实例详解
Dec 27 NodeJs
M2实现Nodejs项目自动部署的方法步骤
May 05 NodeJs
nodejs二进制与Buffer的介绍与使用
Jul 11 NodeJs
nodeJs的安装与npm全局环境变量的配置详解
Jan 06 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获取淘宝分类id示例
2014/01/16 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
php通过分类列表产生分类树数组的方法
2015/04/20 PHP
正确的PHP匹配UTF-8中文的正则表达式
2015/05/13 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
Yii全局函数用法示例
2017/01/22 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
javascript与CSS复习(《精通javascript》)
2010/06/29 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
如何构建 vue-ssr 项目的方法步骤
2020/08/04 Javascript
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
简单解析Django框架中的表单验证
2015/07/17 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
python解析命令行参数的三种方法详解
2019/11/29 Python
python编写俄罗斯方块
2020/03/13 Python
python numpy实现rolling滚动案例
2020/06/08 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
html5 拖拽及用 js 实现拖拽功能的示例代码
2020/10/23 HTML / CSS
开朗女孩的自我评价
2014/02/10 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
mysql insert 存在即不插入语法说明
2022/03/25 MySQL
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL