#python #sockets #udp
Вопрос:
У меня есть клиент и сервер. Сервер отправляет клиенту случайное число, и если оно меньше 4, клиент отвечает неудачно.
сервер:
import random
from socket import *
serverSocket = socket(AF_INET, SOCK_DGRAM)
serverSocket.bind(('', 12000))
while True:
rand = random.randint(2, 4)
message, address = serverSocket.recvfrom(1024)
message = (message.decode() " СЛУЧАЙНОЕ ЧИСЛО: " str(rand)).upper()
print("Сервер готов!")
print("Случайное число: " str(rand))
if rand < 4:
continue
serverSocket.sendto(message.encode(), address)
Клиент:
from time import *
from socket import *
localhost = '127.0.0.1'
for i in range(1, 11):
clientSocket = socket(AF_INET, SOCK_DGRAM)
date_current = ctime()
startTime = time()
clientSocket.settimeout(0.5)
try:
requestMessage = bytes("Ping " str(i) " " date_current, 'utf8')
clientSocket.sendto(requestMessage, (localhost, 12000))
mess, rand = clientSocket.recvfrom(1024)
endTime = time()
rtt = endTime - startTime
print(mess.decode())
print("Ответ " localhost " подтверждено: " str(float(rtt)))
print()
except:
print(requestMessage.decode())
print("Время вышло")
print()
Я хочу, чтобы клиент отправил сообщение на сервер в случае сбоя, а сервер восстановил номер и отправил его клиенту до тех пор, пока не поступит ответ об удаче (более 4).
Комментарии:
1. Круто, но в чем вопрос?
2. Я хочу, чтобы клиент отправил серверу сообщение о том, что соединение не удалось установить, и сервер отправил бы новый номер
3. Что мешает вам позвонить
clientSocket.sendto()
во второй раз, чтобы сделать это?