出于测试目的,我将 tcp 消息发送到本地服务器,如下所示:
echo -e "some message" | netcat localhost 1234
使用 brew install netcat
安装 netcat。
除了阻塞相当长的时间(大约一分钟)之外,这工作正常。我尝试使用选项“-w 1”来指定超时,但这并没有改变任何东西。
另一端监听的进程是一个spring-xd tcp source。
有没有其他方法可以发送不会阻塞那么长时间的 tcp 消息?
最佳答案
我在 linux 上还没有看到这样的延迟;还没有在 OS X 上尝试过(它带有 nc
而不是)。
您的流定义是什么?默认的 tcp 源期望数据以 CRLF 终止——例如 telnet localhost 1234
。您需要用于 netcat 的 RAW
解码器。
编辑:
我刚刚测试过
xd:>stream create foo --definition "tcp --decoder=RAW | log" --deploy
与
$ echo "foo" | nc localhost 1234
没有任何问题。
关于sockets - 在 macos 上通过命令行发送 TCP 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29342008/