服务器发送二进制文件大小,linux - 使用Netcat将二进制文件(逐行)发送到套接字服务器 - 堆栈内存溢出...

作为该堆栈溢出问题的一个副产品,我希望对它进行归档,但要进行一些调整。

我想连接到主机,逐行发送二进制文件,并且每行之间有几秒钟的延迟...而且它必须处于同一连接中。 我要发送的字符串主要是基于文本的,但该行中有两个不可打印的字符。

这是我要发送的字符串/行的示例(每个文件数千行):

e00326513,6598,no,8,,2z

值是十六进制值0x00 。

我已经从第一个条目中删除了我的问题,但是@mzet在我最初的问题上回答了我,因为那时我的问题是纯文本的,但是后来我发现我的字符串里面有这些0x00字符,我一开始看不到。 我想以他的答案为基础,因为我认为这几乎可以奏效,但是可能需要进行调整,所以这是他的贡献,而不是我的贡献。

如果我有3行的文件:

e00370513,6598,no,8,,2z

f00891548,6598,yes,8,,3z

f00129525,6598,yes,8,,2z

然后我以为可以调整@mzet答案,并用\\x00替换文件中的值,并在echo命令上设置-e :

[root@srv]# mkfifo /tmp/fifoIn; cat /tmp/fifoIn | nc localhost 2222 &

[root@srv]# cat myfile | while read line; do echo -ne $line; sleep 2; done > /tmp/fifoIn

当我这样做时,我可以在服务器端看到x00 :

[root@srv]# nc -l 2222

x00ex00x0000370513,6598,no,8,,2zx00

x00fx0000891548,6598,yes,8,,3zx00

x00fx00x0000129525,6598,yes,8,,2zx00

是否可以根据需要发送二进制(文本?)文件? 如果无法逐行发送文件,那么是否可以发送一个字符串数千次? 完全有必要,它们不必是唯一的,也不必在文件中,因为我可以使用相同的字符串重复自身来进行管理。

编辑#1

为什么我的脚本在发送后仅向服务器发送一行(我希望有4行),之后它才永远暂停(?)。 客户端(也不是服务器)关闭其连接,但没有任何错误:

rm -f /tmp/fifofile

mkfifo /tmp/fifofile

cat /tmp/fifofile | nc 192.168.20.6 5000 &

sleep 1

i="0"

while [ $i -lt 4 ]

do

echo "$i"

echo -ne "\x00e\x00\x00001212dsfdsfdsfsdfsdfsdfdsf\x00" | tee /tmp/fifofile

sleep 1

i=$[$i+1]

done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值