* UDP 서버는 다음과 같이 이용 가능하다.
var dgram=require('dgram'); var server=dgram.createSocket('udp4'); //socket 생성, udp4 는 UDP over IPv4, udp6은 UDP over IPv6을 의미 server.on('message',function(message,rinfo){ console.log('server got message:'+message); console.log('server got from:'+rinfo.address+' port:'+rinfo.port); server.send(message,0,message.length,rinfo.port,info.address); //서버를 이용해서 특정 주소, 포트로 메시지 전송 //client.send(message,0,message.length,port,client,function(){//message buffer 재활용 가능} }); //새로운 메시지가 도착하면 message 메시지를 발생시킴 //rinfo는 접속한 클라이언트 정보 var port = 4000; server.on('listening',function(){ var address=server.address(); console.log('server listening on ' + address.address+':'+address.port); }); server.bind(port); |
* UDP Client는 다음과 같이 이용 가능하다.
#!/usr/bin/env node var dgram=require('dgram'); var host=process.argv[2]; var port=parseInt(process.argv[3],10); var client=dgram.createSocket('udp4'); process.stdin.resume(); process.stdin.on('data',function(data){ client.send(data,0,data.length,port,host); }); client.on('message',function(message){ console.log('Get message back:',message.toString()); }); console.log('Start typing to send message to %s:%s',host,port); |
* Multicast message 송/수신
var server=require('dgram').createSocket('udp4'); server.on('message',function(message,rinfo){ console.log('Got Message:'+message+' from:'+rinfo.address+':'+rinfo.port); }); server.bind(4000); server.addMembership('230.1.2.3'); //multicast message 수신 |
var dgram=require('dgram'); var client=dgram.createSocket('udp4'); var message=new Buffer('this is multicaset message'); client.bind(4000); client.setMulticastTTL(10); client.send(message,0,message.length,4000,'230.1.2.3'); client.close(); //multicast message 송신 |