node.js学习笔记之创建UDP服务器与客户端
来源:互联网 发布:秦素妍捏脸数据 编辑:程序博客网 时间:2024/06/06 14:14
server.js
/*创建简单的UDP服务器*/var dgrm = require('dgram');var server = dgrm.createSocket('udp4');//udp4为指定UDP通信的协议类型server.on('message',function (msg, rinfo) { console.log('已收到客户端发送的数据:'+msg); console.log('客户端地址信息为&j',rinfo); var buf = new Buffer('确认信息:'+msg); //server.sent(Buffer,offset,length,port,address,[callback]) server.send(buf,0,buf.length,rinfo.port,rinfo.address);});//当socket对象开始监听指定的端口和地址时,触发socket端口的listening事件/*server.on('listening',function () { var address = server.address(); console.log('服务器开始监听。地址信息为&j',address);});*/server.bind(3000,'localhost',function () { //bind方法中也可以不写回调函数,单独监听listening事件 var address = server.address(); console.log('服务器开始监听。地址信息为&j',address);});client.js:
/*创建简单的UDP客户端*/var dgram = require('dgram');var mess = new Buffer('您好');var client = dgram.createSocket('udp4');client.send(mess,0,mess.length,3000,'localhost',function (err, bytes) { if(err) console.log('发送数据失败'); else { console.log('已发送%d字节数据',bytes); }});client.on('message',function (msg, rinfo) { console.log('已接收服务器发送的数据:%s',msg); console.log('服务器的地址为%s',rinfo.address); console.log('服务器所用端口为%s',rinfo.port); client.close();});client.on('close',function () { console.log('socket端口被关闭');});
下面分别为服务器和客户端的运行效果:
server.js
/*使用socket端口的对象的unref方法允许应用程序的正常退出*/var dgrm = require('dgram');var server = dgrm.createSocket('udp4');//udp4为指定UDP通信的协议类型server.on('message',function (msg, rinfo) { console.log('已收到客户端发送的数据:'+msg); console.log('客户端地址信息为&j',rinfo); var buf = new Buffer('确认信息:'+msg); //server.sent(Buffer,offset,length,port,address,[callback]) server.send(buf,0,buf.length,rinfo.port,rinfo.address); //当客户端关闭10秒后关闭服务器 setTimeout(function () { server.unref(); },10000);});server.bind(3000,'localhost',function () { //bind方法中也可以不写回调函数,单独监听listening事件 var address = server.address(); console.log('服务器开始监听。地址信息为&j',address);});
client.js
/*取消UDP客户端socket端口的关闭*/var dgram = require('dgram');var mess = new Buffer('您好');var client = dgram.createSocket('udp4');client.send(mess,0,mess.length,3000,'localhost',function (err, bytes) { if(err) console.log('发送数据失败'); else { console.log('已发送%d字节数据',bytes); }});client.on('message',function (msg, rinfo) { console.log('已接收服务器发送的数据:%s',msg); console.log('服务器的地址为%s',rinfo.address); console.log('服务器所用端口为%s',rinfo.port); client.close();});client.on('close',function () { console.log('socket端口被关闭');});
阅读全文
0 0
- node.js学习笔记之创建UDP服务器与客户端
- Node.js学习笔记5【http服务器与客户端】
- node.js学习笔记之创建TCP客户端
- node.js学习笔记之HTTP客户端
- node.js学习之创建TCP服务器
- node.js学习之创建HTTP服务器
- Node.js学习(11)----HTTP服务器与客户端
- node.js 创建服务器及客户端
- liunx中udp服务器与客户端创建
- Node.js UDP服务器无法收到客户端消息
- node.js学习笔记之HTTP获取客户端请求信息
- Node.js HTTP 服务器与客户端
- udp服务器与客户端
- UDP服务器与客户端
- Node.js创建服务器
- node.js 学习笔记之 module.exports与exports
- [js高手之路]node js系列课程-创建简易web服务器与文件读写
- [js高手之路]node js系列课程-创建简易web服务器与文件读写
- 在windows中连接到虚拟机Linux的mysql
- 与服务器进行数据Android--->servlet(get、post、AsyncClient)三种方式
- intellj idea 自定义插件安装及使用
- 抽象类、接口、内部类和单例的总结!
- uva 10391 Compound Words
- node.js学习笔记之创建UDP服务器与客户端
- JVM Stacks
- PHP操作mongodb数据库操作类
- java-nio详细介绍
- [Poi2010]Monotonicity 2
- 用jQuery合并表格中相同文本的相邻单元格
- [leetcode] 234. Palindrome Linked List
- 《Inside C#》笔记(完) 程序集
- python面向对象编程的思想0727