Неправильный вывод пропускной способности через Python между сервером и клиентом
Я пишу код python, чтобы найти пропускную способность между сервером и клиентом. Она основана на speedtest.net функциональность, в которой я отправляю фиктивный файл для расчета скорости. Проблема, с которой я сталкиваюсь, - это ненадежная пропускная способность. Я буду признателен Вам за ваши предложения по этому поводу. Вот код.
server.py
import socket import os port = 60000 s = socket.socket() host = socket.gethostname() s.bind((host, port)) s.listen(5) print 'Server listening....' while True: conn, addr = s.accept() print 'Got connection from', addr data = conn.recv(1024) print('Server received', repr(data)) filename='akki.txt' b = os.path.getsize(filename) f = open(filename,'rb') l = f.read(b) while (l): conn.send(l) l = f.read(b) f.close() print('Done sending') conn.send('Thank you for connecting') conn.close()
Client.py
import socket import time import os s = socket.socket() host = socket.gethostname() port = 60000 t1 = time.time() s.connect((host, port)) s.send("Hello server!") with open('received_file', 'wb') as f: print 'file opened' t2 = time.time() while True: data = s.recv(1024) if not data: break f.write(data) t3 = time.time() print data print 'Total:', t3 - t1 print 'Throughput:', round((1024.0 * 0.001) / (t3 - t1), 3), print 'K/sec.' f.close() print('Successfully received the file') s.close() print('connection closed')
Вывод при отправке akki.txt
Вывод Сервера
Сервер слушает....
Получил соединение от ('10.143.47.165', 60902)
("Сервер получен", " Привет, сервер!"")
Сделано отправка
Открыт выходной файл клиента
Необработанные таймеры: 1503350568.11 1503350568.11 1503350568.11
Итого: 0.00499987602234
** Пропускная способность: 204,805 к / сек.**
Успешно получен файл
соединение закрыто
Выход для ak.zip ( какой файл больше)
Открыт выходной файл клиента
Итого: 0.0499999523163
** Пропускная способность: 20,48 к / сек.**
Успешно получен файл
соединение закрыто
Что я уже пробовал:
Выход меняется. Например, если я использую файл с меньшим размером, пропускная способность больше, однако если я отправляю файл с большим размером, пропускная способность меньше. Я ищу решение, чтобы получить постоянную пропускную способность между двумя одноранговыми узлами.