2015-05-06 1 views
5

Я пытаюсь измерить скорость передачи файлов через сокеты в python. Я установил измерения на обоих концах (отправляющая и принимающая сторона) и получил несколько разные результаты (например, 16 против 17 Мбит/с для 1 МБ файла, переданного через ad-hoc wifi). Мой вопрос заключается в том, что такое различие - это то, чего я должен ожидать, учитывая следующую установку измерения. Все это работает на двух моделях Raspberry Pi 2 B.Измерение скорости передачи файлов wifi в python

Отправитель:

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() 

приемник:

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()) 

Также приветствуются любые другие измерения скорости передачи советы, если есть какой-либо способ чтобы сделать это лучше.

ответ

2

Я думаю, что speedtest-cli для чего вы блокируете. Кроме того, есть хороший article. Кажется, что Малина Пи поддержала.

Matt Martz создал проект Python под названием speedtest-cli, который позволяет выполнять базовое измерение загрузки/загрузки с использованием инфраструктуры SpeedNet. Он отлично работает на Pi и очень легко попробовать в командной строке.

Если вы хотите создать свой собственный скрипт, в любом случае speedtest_cli.py хорошее место для начала.