다음과 같은 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
바이트를 파이프하도록 지시합니다.