Python Разъяснение программирования сокетов (время) - PullRequest
0 голосов
/ 18 апреля 2020

Может кто-нибудь уточнить этот код, который я нашел?

import socket
import time
import matplotlib.pyplot as plt

time_start = 0
time_end = 0
time_dict = {}
time_list = []

def upload_file(file_name):
    file_path = "client/" + file_name
    with open(file_path,'rb') as f: # open file for reading only in binary format
        while True:
            l = f.read(BUFFER_SIZE) # read in at most 1024 bytes at once from f
            while (l):
                s.send(l)
                time_list.append((time.time() - time_start)*(10**3))
                # checking condition
                if time_list[-1] == 0: # last element in time_list
                    a = 0
                else:
                    a = (len(time_list)*(BUFFER_SIZE)) // time_list[-1]
                if not time_dict.get(time_list[-1]):
                    time_dict[time_list[-1]] = a
                l = f.read(BUFFER_SIZE)
            # when there is no data
            if not l:
                f.close()
                time_list.append((time.time() - time_start)*10**3)
                duration_time = (time.time() - time_start)*10**3
                print('time:  start = ',time_start, ' end = ',time.time())
                print('time:  transfer_time = ', duration_time)
                print("file uploaded and graph is shown below!!")
                return time_dict


Должны ли значения time_start и time_end где-то увеличиваться? Что делает time_list и time_dict в этом коде et c.? Я знаю, что 10 ** 3 - это 10 ^ 3, а // - это деление по полу. 's' это сокет. На что именно отправляется?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...