2016-05-09 16 views
0

Ich möchte eine Datei von einem Raspberry Pi zu einem anderen kontinuierlich senden (bis sie ausgeschaltet sind oder etwas). Ich sende Daten von einem Pi zu einem AP und leite diese Daten von diesem AP zu dem anderen Pi weiter. Ich bin mit dem aktuellen Code einmal, um die Datei zu senden (erfolgreich):Senden einer Datei kontinuierlich über Netcat/Socat

Empfänger: socat TCP-LISTEN:4242 /home/pi/Desktop/smth

Sender: socat TCP:hostname:4242 /home/pi/Desktop/zeroMega.dat

Die Datei Ich schicke (zeroMega.dat) ist eine zufällig generierte Datei, da ich mich nicht um die Daten kümmere und diese Datei von 1 MB kontinuierlich von einem Pi zum anderen senden (loopen) muss. Wie könnte ich das tun? Ich weiß, dass ich wahrscheinlich ein Skript erstellen muss, um das kontinuierlich auszuführen, insbesondere da ich es beim Start ausführen muss. Jede Hilfe wäre willkommen. Vielen Dank.

+0

Eine weitere Option verwenden können, und das wird halten Nullen suppling für immer ... –

+0

Ich habe die Datei zeroMega.dat benutze '/ dev/zero' an erster Stelle. Vielen Dank. – Sapiens

+0

Mein Punkt war, dass, wenn Ihre Datei unendlich groß ist, Sie nicht wiederholt werden müssen, weil die erste Datei ewig dauern wird. –

Antwort

0

es in einer Endlos-Schleife Put: `/ dev/zero` als Datei

while true; do 
    # whatever should be repeated forever 
done 
+0

Danke Thomas, ich habe das versucht und obwohl die Logik richtig zu sein scheint, bekomme ich einen Fehler wegen des Ports, den ich benutze. Ich habe den oben erwähnten Code in meinem Post kopiert, in dem "while" Beispiel hast du mir zwei .sh Dateien auf beiden Raspberry Pi's gegeben. Es scheint, dass, wenn ich meine Datei über den angegebenen Port (4242 in diesem Fall) sende, der Fehler: "Adresse ist bereits in Verwendung" Ich glaube, das ist, weil nach dem Senden der Datei einmal versucht es auf dem gleichen Port und sieht das dort gibt es einen bestehenden Prozess. Wie könnte ich das überwinden? Senden der Datei über den gleichen Port "unendlich" Zeiten wäre perfekt. – Sapiens

+0

Hmm, ja, Ports bleiben einige Zeit nach dem Schließen reserviert. Möchten Sie die Datei am anderen Ende _store_? Wenn Sie nur Datenverkehr generieren möchten, ist es möglicherweise einfacher, stattdessen einen unbegrenzten Datenstrom zu senden.Andere Kommentatoren scheinen zur gleichen Schlussfolgerung gekommen zu sein :) – Thomas

+0

Ja, ich muss die Informationen nicht am anderen Ende speichern, ich schreibe es auf '/ dev/null' am empfangenden Ende. Die Verwendung von UDP anstelle von TCP gibt mir etwas Verkehr (~ 15 Mbps). Es ist jedoch nicht stabil (stoppt manchmal für 10 Sekunden manchmal), aber dann ist es wieder UDP. Vielen Dank. – Sapiens