반응형

* 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 송신





반응형
Posted by alias
,