2017-07-06 119 views
1

我試圖通過使用netcat發送TCP流量來創建一些測試網絡流量。如何在Bash中使用netcat自動發送和接收TCP通信?

問題是,接收TCP數據的netcat命令不能自行結束,這非常合理。

我想知道如何讓腳本繼續運行到TCP通信的發送部分。類似的東西來:

#!/bin/bash 

#Prepare to receive traffic 
nc -vv -l -p 5000 > receiveData.txt 

#Send traffic 
nc -nvv localhost 5000 < sendData.txt 

顯然,該腳本將永遠無法與#Send traffic行,因爲收到交通永遠不會結束。我一直在尋找異步運行bash中的函數的方法,但是我沒有看到任何解決這個問題的方法。

回答

1

剛剛在後臺運行接收流量過程,以便其他命令可以執行到?

# Prepare to receive traffic 
# Running this process in the background so that the sending TCP traffic 
# happens 

nc -vv -l -p 5000 > receiveData.txt & 

#Send traffic 
nc -nvv localhost 5000 < sendData.txt 
+1

我應該在嘗試之前試過,但我認爲這樣做只會允許我運行腳本一次,然後將該監聽端口打開。我忘記了,如果發送成功,它將關閉接收。謝謝....這種明顯的解決方案。 – trueCamelType

相關問題