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极简入门教程(一):模块机制
Oct 25 NodeJs
轻松创建nodejs服务器(7):阻塞操作的实现
Dec 18 NodeJs
nodejs中实现阻塞实例
Mar 24 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
用nodejs实现json和jsonp服务的方法
Aug 25 NodeJs
Nodejs中使用phantom将html转为pdf或图片格式的方法
Sep 18 NodeJs
nodejs实现OAuth2.0授权服务认证
Dec 27 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 NodeJs
NodeJs 实现简单WebSocket即时通讯的示例代码
Aug 05 NodeJs
Nodejs实现WebSocket代码实例
May 19 NodeJs
Nodejs在局域网配置https访问的实现方法
Oct 17 NodeJs
node快速搭建后台的实现步骤
Feb 18 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实现的功能是显示8条基色色带
2006/10/09 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
PHP比你想象的好得多
2014/11/27 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
php微信开发之关注事件
2018/06/14 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
js中查找最近的共有祖先元素的实现代码
2010/12/30 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
2014/06/06 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
解决vue打包css文件中背景图片的路径问题
2018/09/03 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
[50:22]完美盛典-2018年度红毯走秀
2018/12/16 DOTA
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
python实现读Excel写入.txt的方法
2018/04/29 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
2019/06/17 Python
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
《争吵》教学反思
2014/02/15 职场文书
幼儿园教学随笔感言
2014/02/23 职场文书
大学生社会实践评语
2014/04/25 职场文书
公司表扬信格式
2015/05/04 职场文书
母亲去世追悼词
2015/06/23 职场文书
导游词之广州陈家祠
2019/10/21 职场文书