I have an ASCII file, which looks like this:


What I want to do is to send every row of it as one binary TCP segment's payload with NetCat.

To convert the number from file to its binary representation I'm using Perl's print pack("c", <STDIN>); so I can easily convert whole file (number by number). I know also how to send it with cat file | netcat localhost 9999 but this command sends whole content as payload in one segment.

What can I do to send every line of original file (converted to binary) as a new TCP segment?


OK, so I have found a solution.

To send every n bytes from file as a new TCP segment, the command similar to given below can be used:

for i in `seq 1 $num_of_segments`
  head -c $i file_name | tail -c 1 | netcat localhost 9999

Option -c n in head and tail commands tells to pipe first or last n bytes.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.