Отправка данных клиента с помощью таймера - PullRequest
0 голосов
/ 30 января 2019

Итак, у меня есть простой клиент-сервер.

Они правильно соединяются с аргументами командной строки, отправляют и получают данные.

Когда сервер не запущен и работает, но клиент выполняет: Попытайтесь подключиться после 1 секунды отображения сообщения о том, что онТайм-аут (3 раза) до закрытия.

ближайший к нему я могу просто попытаться 3 раза.

import sys
from socket import *
# Get the server hostname, port and data length as command line arguments
argv = sys.argv
host = argv[1]
port = argv[2]
count = argv[3]

# Command line argument is a string, change the port and count into integer
port = int(port)
count = int(count)
data = 'X' * count # Initialize data to be sent

# Create UDP client socket. Note the use of SOCK_DGRAM
clientsocket = socket(AF_INET, SOCK_DGRAM)

# Sending data to server
# times out after 1 second (?)
for i in range(3):
        try:
            print("Sending data to " + host + ", " + str(port) + ": " + data)
            clientsocket.sendto(data.encode(),(host, port)) 
            # Receive the server response
            dataEcho, address = clientsocket.recvfrom(count)
            # Display the server response as an output
            print("Receive data from " + address[0] + ", " + str(address[1]) + ": " + dataEcho.decode())
            break
        except:
            print("timed out")
        finally:
            #Close the client socket
            clientsocket.close()

Как бы добавить к нему таймер?Просто добавив 1 секунду между каждой попыткой вместо того, как я закодировал.

1 Ответ

0 голосов
/ 30 января 2019

Если вы просто хотите, чтобы программа спала в течение x секунд, вы можете import time, а затем добавить time.sleep(num_of_seconds_to_sleep) после вашей строки clientsocket.close().

...