다음과 같은 ASCII 파일이 있습니다.
36,36,0,1
36,36,0,2
...
내가 원하는 것은 NetCat을 사용하여 이진 TCP 세그먼트의 페이로드로 각 줄을 보내는 것입니다.
파일의 숫자를 이진 표현으로 변환하기 위해 Perl을 사용하여 print pack("c", <STDIN>);
전체 파일을 쉽게 변환할 수 있습니다(숫자별로). 보내는 방법도 알고 있는데 cat file | netcat localhost 9999
이 명령은 전체 콘텐츠를 하나의 세그먼트에 페이로드로 보냅니다.
원본 파일(바이너리로 변환됨)의 각 줄을 새 TCP 세그먼트로 보내려면 어떻게 해야 합니까?
답변1
좋아, 그래서 해결책을 찾았습니다.
파일의 각 바이트를 새 TCP 세그먼트로 보내려면 n
아래와 유사한 명령을 사용할 수 있습니다.
for i in `seq 1 $num_of_segments`
do
head -c $i file_name | tail -c 1 | netcat localhost 9999
done
-c n
첫 번째 바이트 또는 마지막 바이트를 파이프할지 여부를 나타내는 명령의 옵션 .head
tail
n