半关闭netcat连接

MvG*_*MvG 5 pipe tcp netcat

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

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

MvG*_*MvG 2

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

some command | socat -t30 - TCP:localhost:1234
Run Code Online (Sandbox Code Playgroud)

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