У меня есть клиент, который в основном хочет (время от времени) подключаться к удаленному хосту, отправлять сообщения и отключать их. Но хост может быть не всегда доступен. Как настроить цикл, который делает что-то вроде (предпочтительно избегая некоторых постоянных циклов, потребляющих процессор)
Attempt_Send_Data (данные DATA)
Хост онлайн? Нет: повторите проверку Да: Подключите, Передайте эти данные, Отключите, верните
(Я использую C++, WinSock2 и протокол TCP)
На совершенно несвязанной ноте, но поскольку я работал над этим, когда вы удалили свой другой вопрос, я отправлю его здесь и удалю, как только у вас будет время взглянуть на него.
Для других читателей да, это не по теме для этого вопроса, но, возможно, нам нужна система обмена сообщениями.
для начинающих, рефакторинг вашего getInterSection
:
# This return 2, 3 or 4 items, depending on the position
def getInterSection(x,y,grid):
intersections = []
if y > 0:
intersections.append((x, y - 1))
if y < grid[1] - 1:
intersections.append((x, y + 1))
if x > 0:
intersections.append((x - 1, y))
if x < grid[0] - 1:
intersections.append((x + 1, y))
return intersections
Используйте так:
intersect = getInterSection(x,y,grid)
# This is a uniform choice, therefore probability is as expected 1/2, 1/3 or 1/4
x,y=random.choice(intersect)
sqrt(2)/2
вместо 1. Возможно, что-то связано с направлением от пункта отправления к пункту назначения.