在macosx上通过命令行发送TCP消息

时间:2015-03-30 08:54:51

标签: sockets command-line tcp spring-xd

出于测试目的,我将tcp消息发送到本地服务器,如下所示:

echo -e "some message" | netcat localhost 1234

使用brew install netcat安装netcat。

这样可以正常工作,除非这会阻塞相当长的时间(大约一分钟)。我尝试使用选项“-w 1”来指定超时,但这并没有改变任何东西。

另一端的进程是spring-xd tcp源。

有没有其他方法可以发送不会阻塞那么长的tcp消息?

1 个答案:

答案 0 :(得分:3)

我没有在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

并没有问题。