【问题标题】:Can netcat be made to work in a passthrough way可以让netcat以直通方式工作吗
【发布时间】:2016-11-02 11:04:50
【问题描述】:

我使用netcat 作为一些服务和火花流实例之间的桥梁。例如,服务将消息发送到 net cat 正在侦听的host:port,然后想法是 spark 可以使用它。然而,有没有办法让 netcat 直通,即充当一个非常简单的服务器并从字面上听和发射。

ncat -lk localhost 5005

这表明我可以从我的第一个服务中发送我的消息。但是我从听同一主机:端口的火花中一无所获。有没有办法让这个工作?

一个建议是使用带有mkfifo backpipe 的管道,但是现在的问题是,当运行我的 spark 实例时,它正在侦听 5006,但似乎这个连接似乎并不活跃。我的服务发送到 5005,然后 netcat 应该将其通过管道传输到 5006,但是我怎样才能使 5006 上的服务始终存在,以便我的 spark 实例可以监听它?

mkfifo backpipe
nc -kl localhost 5005 0<backpipe | nc localhost 5006 1>backpipe

我还尝试了以下方法:

nc -klp 5005 -w 5 localhost 5006

但问题始终是火花无法消耗并出现以下错误:

Deregistered receiver for stream 0: Restarting receiver with delay 2000ms: Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused

【问题讨论】:

  • 如果有可用的带有水龙头和软管的 netpipes 包可能是更好的匹配,但是手头有 mkfifo 它应该与 netcat 一起使用,如 bidirectional socat functionality with nc 中所述
  • @Dilettant 我试过这个并更新了问题。谢谢。

标签: linux networking apache-spark network-programming netcat


【解决方案1】:

你用的netcat是什么版本的?什么操作系统?如果您使用传统的 netcat(不是用于 Spark 示例的 BSD-one),您必须提供端口参数:

nc -lk -p 5005

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多