реклама на сайте
подробности

 
 
> Неожиданное завершение сеанса связи по Ethernet (ARM <-> PC).
Oleg_IT
сообщение Dec 4 2013, 05:22
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Собственно сеанс связи так и не начинается. На ARM работает немного усечённый пример из пакета Keil LEDClient, на PC пробовал две программы, первая простейший эхо сервер на Qt, вторая тестовая программа servcons. Открытие канала проходит нормально, но потом программа на ARM (библиотека TCP_ARM_L) выдаёт команду FIN, канал закрывается и всё повторяется снова.
Сканы со снифира в приложении.
Почему разрывается соединение? Как исправить?


Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Oleg_IT
сообщение Dec 4 2013, 11:47
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Посмотрел, но ни чего "криминального" не увидел. Вся логика скрыта в библиотеке, в открытом коде только обработка статусов закрыт, свободен и канал открыт. Таймаут стоит 4 секунды, но команда FIN выдается сразу.
Вообще после некоторых попыток открыть канал статус сокета становится ..._SYN_SENT и больше не меняется.
Go to the top of the page
 
+Quote Post
bzx
сообщение Dec 4 2013, 15:52
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 482
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528



Цитата(Oleg_IT @ Dec 4 2013, 15:47) *
Посмотрел, но ни чего "криминального" не увидел. Вся логика скрыта в библиотеке, в открытом коде только обработка статусов закрыт, свободен и канал открыт. Таймаут стоит 4 секунды, но команда FIN выдается сразу.
Вообще после некоторых попыток открыть канал статус сокета становится ..._SYN_SENT и больше не меняется.

Внимательнее на Ваши логи гляньте:
Цитата
5. 1,200с –> ACK port2323
6. 10,999c -> FIN port2323


И что Вы после этого хотите?
Сокет открыт, почти 10с, обмена нет. Очень большая вероятность что Ваш девайс сам по таймауту закрывает соединение, посылая FIN.
Ищите в настройках по умолчанию (defaul) Вашего стека время удержания открытого tcp соединения (сокета).

Проверить данную версию можно так. В отрытый сокет шлите с любой стороны что-то с интервалом в несколько секунд, но более 10с.


--------------------
Для связи email: info собака qbit.su
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2025 - 22:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.02106 секунд с 7
ELECTRONIX ©2004-2016