我試圖在unix中一行一行地使用nc命令將文件內容發送到服務器正在偵聽進一步處理的端口。在Linux下使用netcat處理數據包丟失,shell腳本
我使用下面的代碼:
客戶:
for inFile in `ls /home/dbadmin/input_data/*.dat`
do
while read line
do
echo $line
echo $line |nc -C 127.0.0.1 7870
done<$inFile
done
服務器:
echo "socket program"
while true
do
echo `nc -l 7870`
done
我有75線在發送端的文件中,但我在接收器端只能獲得60行的 。你們能幫我解決這個問題嗎?
更新的代碼來檢查數字,而不是文件中讀取
#!/bin/bash
c=1
while [ $c -le 10 ]
do
echo "Welcone $c times"
echo $c |nc -C 127.0.0.1 7870
((c++))
done
嗨,馬克,感謝您的建議。 我需要逐行發送,所以我添加了上面的代碼,這是發送10個數字,我只有8個數字。剩下的2個數字丟失了。 – user4k
當你改變它會發生什麼? –
嗨,馬克,我可以看到上面提到的相同輸出。 這是我需要逐行發送的示例文件。類似的方式我有n個數字文件。 http://dpaste.com/hold/1586897/ 注意:我不想發送整個文件,Actuall我需要逐行發送。爲什麼,因爲我已經有了另一個腳本,它正在做一些處理,它會寫入文件。我只想鏈接腳本的輸出以發送流中的每個值 – user4k