Я работал над реализацией программы сокетов UDP (в основном идея типа сервер / клиент). Я столкнулся с проблемой, когда сервер получает сообщение от клиента, следит за кодом до определенной точки, но затем останавливается, и в следующий раз, когда сервер получает другое сообщение от клиента, он завершает обработку команд предыдущего запрос, затем снова останавливается и повторяется. Это может не иметь смысла, но я постараюсь объяснить с помощью кода.
def receive():
conn_list = connections()
routes = []
sender = -1
read, write, errors= select.select(conn_list,[],[])
data = None
for sock in read:
data, addr = sock.recvfrom(1024)
print(data.decode('utf-8'))
print("hello")
def run():
filename = input("fielname? ")
route_table = create_table(filename)
while True:
receive()
Сообщение "2. 2. 5. 15000. [4, 2]. [6, 1]"
(например)
таким образом, ожидаемый результат в консоли при каждом ударе по серверу будет:
2. 2. 5. 15000. [4, 2]. [6, 1]
hello
Однако при первом запуске я получаю:
2. 2. 5. 15000. [4, 2]. [6, 1]
тогда второй раз получаю:
hello
2. 2. 5. 15000. [4, 2]. [6, 1]
так что вся консоль после двойного попадания на сервер выглядит так:
2. 2. 5. 15000. [4, 2]. [6, 1]
hello
2. 2. 5. 15000. [4, 2]. [6, 1]
Заранее спасибо за помощь, если у кого-то есть идеи!