Echo
import dgram from 'dgram';
// A UDP echo server: each datagram is echoed back to its sender. A client
// sends one datagram, reads the echo, and both sockets close so this example
// terminates (a real server would keep its socket open).
const server = dgram.createSocket('udp4');
server.on('message', (msg, rinfo) => {
console.log('server got:', msg.toString(), 'from', rinfo.family);
server.send('reply:' + msg.toString(), rinfo.port, rinfo.address);
});
server.bind(0, '127.0.0.1', () => {
// The socket exists once bound: setBroadcast enables SO_BROADCAST so
// datagrams can target a broadcast address; .address() reports the real
// bound { address, family, port }.
server.setBroadcast(true);
const { family, port } = server.address();
console.log('UDP echo server bound,', family);
const client = dgram.createSocket('udp4');
client.on('message', (msg) => {
console.log('client got:', msg.toString());
client.close();
server.close(() => console.log('server closed'));
});
client.send('kalimera', port, '127.0.0.1');
});View source on GitHubexamples/dgram/echo.ts