Espruino/tests/test_dgram_socket.js
Standa Opichal e4bcd3f2db Separated UDP/TCP socketserver handling
Not using stream for UDP receiveData, calling dgram_messageCallback()
instead.
2017-08-25 23:48:18 +02:00

42 lines
956 B
JavaScript

// Socket server and client test
var result = 0;
var port = 41234;
let dgram = require('dgram');
let srv = dgram.createSocket('udp4');
srv.bind(port, function(bsrv) {
bsrv.on('message', function(msg, info) {
console.log("<"+JSON.stringify(msg));
console.log("<"+JSON.stringify(info));
bsrv.send(msg+'!', info.port, info.address);
});
});
srv.on('close', function() {
console.log('server disconnected');
});
let client = dgram.createSocket('udp4');
client.on('message', function(msg, info) {
console.log(">"+JSON.stringify(msg));
console.log(">"+JSON.stringify(info));
result = msg=="42!" && info.address=="127.0.0.1" && info.port==port;
clearTimeout(); // stop the fail fast
srv.close();
client.close();
});
client.on('close', function() {
console.log('client disconnected');
});
// fail the test fast if broken
setTimeout(function() {
client.close();
srv.close();
}, 100);
client.send('42', port, 'localhost');