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(一)--- Node.js简介及安装开发环境
May 20 NodeJs
Nodejs全栈框架StrongLoop推荐
Nov 09 NodeJs
NodeJS学习笔记之Connect中间件模块(二)
Jan 27 NodeJs
Nodejs初级阶段之express
Nov 23 NodeJs
使用nodejs中httpProxy代理时候出现404异常的解决方法
Aug 15 NodeJs
Nodejs调用WebService的示例代码
Sep 29 NodeJs
基于nodejs实现微信支付功能
Dec 20 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 NodeJs
NodeJS实现不可逆加密与密码密文保存的方法
Mar 16 NodeJs
Nodejs实现爬虫抓取数据实例解析
Jul 05 NodeJs
nodejs 十六进制字符串型数据与btye型数据相互转换
Jul 30 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 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
destoon实现调用热门关键字的方法
2014/07/15 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
PHP实现的简单操作SQLite数据库类与用法示例
2017/06/19 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
JavaScript DOM学习第四章 getElementByTagNames
2010/02/19 Javascript
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
js触发onchange事件的方法说明
2014/03/08 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
python3实现域名查询和whois查询功能
2018/06/21 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
2018/07/10 Python
Python中的self用法详解
2019/08/06 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
2019/10/11 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
python实现学生信息管理系统(精简版)
2020/11/27 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
如何删除一个表里面的重复行
2013/07/13 面试题
公司承诺书怎么写
2014/05/24 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
婚礼迎宾词大全
2015/08/10 职场文书