Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Network
  • » При попытке получения данных сокет падает по таймауту (Ubuntu) [RSS Feed]

#1 Янв. 30, 2014 18:52:16

NAgain
Зарегистрирован: 2014-01-30
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

При попытке получения данных сокет падает по таймауту (Ubuntu)

Тут такая проблема…

Есть некое устройство, которое периодически валит данные на сервер о всяческих собственных датчиках. Ну не суть. Смысл в том, что этот девайс отсылает серверу запрос со своим серийником и сервер, нашедший у себя в БД этот самый серийник отвечает 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 Янв. 31, 2014 04:13:59

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

При попытке получения данных сокет падает по таймауту (Ubuntu)

Весь код обмена данными можно посмотреть?



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Янв. 31, 2014 06:20:18

NAgain
Зарегистрирован: 2014-01-30
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

При попытке получения данных сокет падает по таймауту (Ubuntu)

Там 2 здоровых класса. Надо вырезать лишнее, оставив только глючные фрагменты. До работы доеду - сброшу.

Офлайн

  • Начало
  • » Network
  • » При попытке получения данных сокет падает по таймауту (Ubuntu)[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version