gpt4 book ai didi

linux - 在响应中返回某个字符后,如何关闭 netcat 连接?

转载 作者:IT老高 更新时间:2023-10-28 12:40:56 30 4
gpt4 key购买 nike

我们有一个非常简单的 tcp 消息传递脚本,它将一些文本发送到服务器端口,该端口返回并显示响应。

我们关心的脚本部分如下所示:

cat someFile | netcat somehost 1234

一旦我们得到一个特定的字符代码(特别是&001C)返回,服务器返回的响应就是“完成”。

收到此特殊字符后如何关闭连接?

(注意:服务器不会为我关闭连接。虽然我目前只是 CTRL+C 脚本,当我可以告诉它完成时,我希望能够发送许多这样的消息,一个接一个。)

(注意:netcat -w x 不够好,因为我希望尽快推送这些消息)

最佳答案

创建一个名为 client.sh 的 bash 脚本:

#!/bin/bash

cat someFile

while read FOO; do
echo $FOO >&3
if [[ $FOO =~ `printf ".*\x00\x1c.*"` ]]; then
break
fi
done

然后像这样从您的主脚本中调用 netcat:

3>&1 nc -c ./client.sh somehost 1234

(您需要 bash 版本 3 来进行正则表达式匹配)。

这假设服务器正在按行发送数据 - 如果不是,您将不得不调整 client.sh 以便它一次读取并回显一个字符。

关于linux - 在响应中返回某个字符后,如何关闭 netcat 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1270027/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com