В настоящее время я работаю с библиотекой сокетов, и мне было интересно, есть ли хороший способ заставить сокет ждать, пока клиент не получит байты, и ждать, пока сервер не отправит байты дальше. В настоящее время я нашел некоторые обходные пути, но я бы очень признателен за лучшее решение Поэтому для получения я сделал этот руби sh:
def rec(client_socket):
while True:
try:
temp = pickle.loads(client_socket.recv(1024))
return temp
except Exception as exception:
pass
У меня нет возможности узнать, когда сервер прекращает вычисления, поэтому time.sleep () не вариант.
А для отправки я делаю еще худшую вещь:
def send_many(num, li):
client_socket.send(pickle.dumps(num))
for i in range(num):
rec(client_socket) #waiting for confirmation
go = li[i]
se = pickle.dumps(go)
client_socket.send(se)
Итак, я просто подожду, пока клиент не получит байты и не вернёт «ОК» на сервер. В противном случае он просто go через суперскорость l oop подумает, что отправил все, а клиент ничего не получил. Спасибо за предложения