3
我需要從標準輸入讀取十六進制數據,將其轉換爲二進制,使用netcat
發送,接收回復,轉換回十六進制並打印到標準輸出。我這樣做:將十六進制轉換爲二進制並通過網絡發送
# xxd -r -p | nc -u localhost 12345 | xxd
然後鍵入我的數據在十六進制,然後按Enter鍵。但它不發送,直到我按Ctrl+D
,所以我收到回覆後無法發送另一個數據包。看起來像xxd -r -p
不寫二進制數據,直到EOF
給出。有沒有辦法讓它在換行之後寫入?
爲什麼你需要將它傳送二進制?十六進制應該工作得很好。二進制是實際需要的字節數,並乘以4(十六進制是每個字節2挖,二進制是8每字節,2/8 = 4) – phyrrus9
@ phyrrus9我認爲這裏的「二進制」的OP定義是一個流的8位字節,而不是ascii 1和0的流。例如,試試'echo 737461636b6f766572666c6f772e636f6d0a | xxd -p -r「 –