|
SIM300DZ, МТС и двойные соединения, Что это - мой глюк, глюк TCP/IP стека или глюки провайдера... |
|
|
|
Sep 10 2008, 12:49
|
Группа: Новичок
Сообщений: 8
Регистрация: 28-05-08
Пользователь №: 37 885

|
Доброго времени суток!
Столкнулся с очень странной проблемой. Есть сервер сбора данных, работает под Linux-ом, написан по классической схеме - accept/fork, т.е. каждое новое входящее соединение обрабатывается своим процессом. К серверу подключаются приборы с sim300dz на борту и шлют ему данные.
Проблема в следующем - иногда (далеко не всегда) и только на МТС возникают два подряд соединения в одну и ту-же секунду от одного и того-же прибора, одно соединение остаётся висеть и затем вываливается по таймауту, а по второму происходит обмен данными. Всё-бы ничего, но когда висящее соединение вываливается по таймауту, то и второе, по которому шёл обмен данными отваливается. Вот кусочек лога, в него пишется начало соединения, факт разрыва и момент завершения процесса, обслуживающего соединение. ------------------- Sep 4 15:39:56 localhost ./vizor-ip[19326]: Remote client attempting to connect. Remote IP : 212.92.139.109 Sep 4 15:39:56 localhost ./vizor-ip[19327]: Remote client attempting to connect. Remote IP : 212.92.139.109 Sep 4 15:39:59 localhost ./vizor-ip[19327]: Device ID=2 logged in. Sep 4 15:39:59 localhost ./vizor-ip[19327]: Server wait for packet from device ID=2... Sep 4 15:41:03 localhost ./vizor-ip[19327]: Get data packet with size=1000 from device ID=2 Sep 4 15:41:03 localhost ./vizor-ip[19327]: Server wait for packet from device ID=2... Sep 4 15:41:56 localhost ./vizor-ip[19326]: Process pid=19326 stoped. Sep 4 15:41:58 localhost ./vizor-ip[19327]: Error get packet from device ID=2 Sep 4 15:41:58 localhost ./vizor-ip[19327]: Device ID=2 abnormally disconnected. Sep 4 15:41:58 localhost ./vizor-ip[19327]: Process pid=19327 stoped. ------------------- Из него видно, что как только остановился по таймауту (2 минуты) процесс, обслуживающий первое соединение - то через две секунды отвалился и второй процесс, явно прибор закрыл соединение, а со стороны сервера функция recv, ожидающая прихода пакета данных, вывалилась с ошибкой.
Тут мне непонятно вот что. TCP/IP стек у SIM300 может одновременно открыть только одно клиентское соединение, каким образом тут образуются сразу два? Со стороны прибора поймать момент разрыва никак не получается - данный глюк не имеет закономерности, проявляется только изредка и только на МТС-е, а например с Мегафоном и Пчелайном такого не бывает.
Что это может быть?
|
|
|
|
|
 |
Ответов
|
Sep 10 2008, 14:31
|
Группа: Новичок
Сообщений: 8
Регистрация: 28-05-08
Пользователь №: 37 885

|
Цитата(VDG @ Sep 10 2008, 17:41)  Мобильник это не обычный компьютер, считайте что работаете не с ним, а с МТС. Вот МТС и косячит с двумя соединениями. У меня тоже вначале возникло именно это предположение, однако попытка повторить данную ситуацию при помощи SIM300DZ, подключенного к COM-порту компьютера и терминалки - не удалась, соединение всегда одно.
|
|
|
|
Сообщений в этой теме
Crazy Coder SIM300DZ, МТС и двойные соединения Sep 10 2008, 12:49   Crazy Coder Цитата(VDG @ Sep 10 2008, 22:54) В таком ... Sep 11 2008, 06:19    KAlex Цитата(Crazy Coder @ Sep 11 2008, 10:19) ... Sep 12 2008, 07:40  AlexandrY NAT шалит.
Поменяейте порт назначения.
Цитата(C... Sep 10 2008, 20:03   Crazy Coder Цитата(AlexandrY @ Sep 11 2008, 00:03) NA... Sep 11 2008, 14:07    AlexandrY Так а на какой меняли?
Менять имеет смысл только ... Sep 14 2008, 08:11 stream Версия прошивки какая? Например, в 18-й версии обы... Sep 11 2008, 09:33 Crazy Coder Цитата(stream @ Sep 11 2008, 13:33) Верси... Sep 11 2008, 12:11
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|