Форум сайта python.su
Тут такая проблема…
Есть некое устройство, которое периодически валит данные на сервер о всяческих собственных датчиках. Ну не суть. Смысл в том, что этот девайс отсылает серверу запрос со своим серийником и сервер, нашедший у себя в БД этот самый серийник отвечает 0х01 или же в противном случае 0х00. Отправка 0х01 подтверждает, что сервер готов к принятию данных от железки, ну а 0х00 соотв. отказ.
Так вот. После того, как сервак отправил 0х01 а железка его получила, она отправляет пакет с данными на сервер, но тот в итоге валится по таймауту сокета. Если смотреть сниффером, то данные приходят, вот только что-то на сокете тишина. Хотя до этого аутентификация, так сказать, проходила на ура. На винде такой проблемы нет, только на убунте
Реализован сервер по стандартной схеме:
…
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind(('', listen_port))
server.listen(5)
…
далее при коннекте создается отдельный поток где и происходит обмен, сохранение и прочие дела с поступившими данными.
Сумбурно наверно объяснил конечно, просто уже голова квадратная от попыток выяснить причину и заставить работать код как надо.
Офлайн
Весь код обмена данными можно посмотреть?
Офлайн
Там 2 здоровых класса. Надо вырезать лишнее, оставив только глючные фрагменты. До работы доеду - сброшу.
Офлайн