半关闭netcat连接

半关闭netcat连接

如果 netcat 连接的输入达到 EOF,如何让它终止 TCP 连接的发送部分?

我有一个(非标准)TCP 服务,它读取所有输入(即直到客户端发送 FIN),然后才开始处理数据并发回回复。我想用来nc与此服务进行交互。但目前回复没有到达控制台nc,并且使用 Wireshark 我可以看到,nc只有在连接退出时才终止连接的发送端(例如,由于超时)。我发现没有命令行选项可以改变这种行为。

答案1

评论经过@meuh建议使用socat以此目的。基于我已经成功使用

some command | socat -t30 - TCP:localhost:1234

传输包含 EOF 的数据,然后仍然接收响应。

相关内容