2015-05-06 4 views
5

Ich versuche, die Geschwindigkeit der Dateiübertragung über Sockets in Python zu messen. Ich richte Messungen an beiden Enden (Sende- und Empfangsseite) ein und erziele etwas andere Ergebnisse (d. H. 16 vs 17 Mbps für eine 1MB-Datei, die über Ad-hoc-Wifi übertragen wird). Meine Frage ist, ob diese Art von Unterschied etwas ist, was ich angesichts der folgenden Messanordnung erwarten sollte. Dies alles läuft auf zwei Raspberry Pi Modelle 2 B.Messung von Wifi-Dateiübertragungsgeschwindigkeit in Python

Absender:

import socket as s 
sock = s.socket(s.AF_INET, s.SOCK_STREAM) 
sock.connect((addr,5000)) 
start = t.time() 
sock.sendall(data) 
finish = t.time() 

Empfänger:

import socket as s 
sock = s.socket(s.AF_INET, s.SOCK_STREAM) 
sock.setsockopt(s.SOL_SOCKET, s.SO_REUSEADDR, 1) 
sock.bind(("", 5000)) 
sock.listen(1) 
conn, addr = sock.accept() 
pack = [] 
start = t.time() 
while True: 
    piece = conn.recv(8192) 
    if not piece: 
     finish = t.time() 
     break 
    pack.append(piece.decode()) 

auch sehr willkommen, andere Ratschläge Geschwindigkeitsmessungen Übertragung, wenn es eine Möglichkeit ist um das besser zu machen.

Antwort

2

Ich denke, die speedtest-cli, was sperren Sie für. Auch gibt es eine gute article darüber. Es scheint, dass Raspberry Pi unterstützt.

Matt Martz hat ein Python-Projekt mit dem Namen speedtest-cli entwickelt, mit dem Sie eine grundlegende Upload-/Download-Messung mithilfe der SpeedNet-Infrastruktur durchführen können. Es funktioniert gut auf dem Pi und ist wirklich einfach auf der Kommandozeile auszuprobieren.

Wenn Sie ein eigenes Skript erstellen möchten, ist speedtest_cli.py ein guter Ort zum Starten.