【问题标题】:How Listen for TCP packet take the data and send UDP with node.js侦听 TCP 数据包如何获取数据并使用 node.js 发送 UDP
【发布时间】:2012-10-20 11:08:56
【问题描述】:

我正在尝试在端口上侦听 TCP 数据包,然后从中获取数据并将其转发到 UDP 端口。原因是在 UDP 端口上侦听的软件只接受 UDP,但我想使用 javascript websockets 向它发送仅使用 TCP 的数据。

【问题讨论】:

    标签: javascript node.js tcp proxy udp


    【解决方案1】:

    WebSockets 不仅仅是一个简单的 TCP 套接字。该协议基本上是一个 HTTP 升级握手(包含一些 WebSockets 特定的安全握手)。

    如果你只是监听一个端口并盲目转发数据,它是行不通的,因为浏览器实际上无法建立 WebSocket 连接。

    您是否考虑过使用socket.io 来处理WebSocket 端的事情?

    那么很简单,只需使用dgram通过UDP发送数据:

    io.sockets.on('connection', function (socket) {
      socket.on('sendudp', function (data) {
        var buf = new Buffer(data), udp = dgram.createSocket("udp4");
    
        udp.send(buf, 0, buf.length, 41234, "localhost", function(err, bytes) {
          udp.close();
        });
      });
    });
    

    显然将41234localhost 替换为所需的目标端口和主机。

    【讨论】:

      【解决方案2】:

      没有“TCP 数据包”之类的东西,因此无法接收。 TCP 呈现一个字节流。您的 UDP 接收器所期望的数据报是否与您在 TCP 流上接收到的数据相对应,只有您自己知道,但您需要知道这是非常有问题的。

      【讨论】:

        猜你喜欢
        • 2012-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-08
        • 1970-01-01
        • 2011-12-21
        • 2014-08-22
        相关资源
        最近更新 更多