0.2.0 • Public • Published

    node-udp-forwarder Build Status Codacy Badge Maintainability

    A simple UDP datagram forwarder / proxy. Akin to socat but multi-platform, extensible, and hackable. Provides a command line interface (CLI) and an API.


    Install using npm

    [sudo] npm install [-g] node-udp-forwarder

    Forwarding using CLI

    Here's a full command line example, but only destination port and address are really required

    udpforwarder \
    --destinationPort 9903 --destinationAddress \
    --protocol udp4 --port 9903 --address \
    --multicastAddress \
    --forwarderPort 0 --forwarderAddress

    Listens for source datagrams on port 9903 of interface with IP address, and forwards them to destination port 9903 at address Destination address can be a multicast group such as

    The source port and address of forwarded datagrams are 0 (any random port number) and, respectively. Datagrams received on the random port number are sent to the last known sender of the source datagrams above.

    Multicast datagrams arriving at port 9903, of interface on Windows, are also forwarded. Linux and OS X require that the UDP socket be bound to all interfaces, address, to be able to listen to multicast.

    IP version 4 is chosen here using udp4 but IP version 6 may also be specified using udp6.

    Forwarding using API

    const udpf = require("node-udp-forwarder");
     * messageAdapter is invoked once per received message and should return an array of transformed messages.
     * it can change the message, omit the message, create new messages, or any combination thereof
     * @param msg the received message buffer
     * @param rInfo the message remote source info 
     * @returns {[*]} an array of string or byte buffers to be forwarded to the destination
    function messageAdapter (msg, rInfo) {
      const newMessage = `${msg.toString()}-transformed`;
      return [msg, newMessage];
    const options = {
        protocol: 'udp4',
        port: 9903,
        address: '',
        multicastAddress: '',
        forwarderPort: 0,
        forwarderAddress: '',
        messageAdapter: messageAdapter, // optional
        created: created
    var f = udpf.create(4007, '', options);
    function created() {
        console.log(`listening on ${f.address}:${f.port}`);
        console.log(`forwarding from ${f.forwarderAddress}:${f.forwarderPort}`);
    // call f.end() when done




    npm i node-udp-forwarder

    DownloadsWeekly Downloads






    Unpacked Size

    12.6 kB

    Total Files


    Last publish


    • tewarid