Я пытаюсь продолжить цикл while 3 раза. Если я получаю данные с сервера, цикл должен прерываться. Но в приведенном ниже коде while цикл заканчивается после ответа один раз. Что мне делать?Ruby while loop выполняется только один раз с break, если оператор
@i = 0
while @i < 3
udp_socket.send req_param[:msg], req_param[:flag], req_param[:url], req_param[:port]
@i +=1
puts "#{@i}"
if udp_socket.recvfrom(100)
break
end
end
for j in 0..1
resp = udp_socket.recvfrom(100)
puts "resp:#{resp.inspect}"
end
udp_socket.close
return resp
Что такое возвращение строки: 'udp_socket.recvfrom (100) '? Потому что это условие разрыва, даже до третьего раза. – lcguida
Возврат строки, которую вы запросили, мгновенно от сервера (т. Е. Простая строка типа «1200») – Shubham
Итак, он всегда отвечает строкой? Если да, то условие всегда будет истинным, а время будет прекращено в первый раз. – lcguida