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

 
 
 
Reply to this topicStart new topic
> wip_write в open at TCP/IP, теряются данные
Vlad1977
сообщение Feb 3 2012, 15:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 13-04-09
Пользователь №: 47 606



Кто сталкивался с работтой функции wip_write? Алгоритм простой до безобразия, соединяюсь с жпрс, потом подключаюсь к серверу через wip_TCPClientCreateOpts . В уарт славиваются данные и по таймеру отправляются на сервер, через жрпс. Данных не много 10-20 посылок в кадой по 100-200 байт. Wip_write как пишут, возвращает количество переданных байт, я это все анализирую и в случае успеха отпарвляю модем в сон. Так вот, данные теряются ...., открывается сокет, начинаеся передача, а концовка иногда просто пропадает. И когда она пропала, где она пропала определить не реально sad.gif. Wip_write говорит что все отправил, tcp по идее должен же гарантировать доставку , но он тоже ничгео не делает. Никакие события о разрыве соединения или сокета не возвращаются, все короче отрабатывается как положено, только данных нет. Может как то можно помудрить с натройками wip_setOpts? WIP_COPT_NODELAY установил в true, размер буффера тоже проверил, все вроде должно работать как положено, только не хочет sad.gif.
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Feb 6 2012, 05:31
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



TCP гарантирует доставку до шлюза. Дальше ниче он не гарантирует. Если нужна 100% доставка данных, то прикручивайте сверху протокол с квитированием от сервера.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 6 2012, 06:44
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



.
Go to the top of the page
 
+Quote Post
gosha14
сообщение Feb 6 2012, 14:14
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 10-05-11
Пользователь №: 64 905



Попробуй перед "уходом в сон" попробуй сделать паузу.
Go to the top of the page
 
+Quote Post
Vlad1977
сообщение Feb 6 2012, 15:07
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 13-04-09
Пользователь №: 47 606



Цитата(gosha14 @ Feb 6 2012, 18:14) *
Попробуй перед "уходом в сон" попробуй сделать паузу.

пауза есть, я ее сразу поставил.
Go to the top of the page
 
+Quote Post
bolmoe
сообщение Feb 8 2012, 13:29
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 5-04-06
Из: Рязань
Пользователь №: 15 830



все таки лучше прикрутить подтверждение приема пакета на серваке, если нет, то повтор пакета
Кстати, пропадает только последний пакет?
Go to the top of the page
 
+Quote Post
sobr
сообщение Feb 9 2012, 01:44
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Буферизация в приложении есть? Или пытаетесь все 200 байт в юарт принять разом?
Go to the top of the page
 
+Quote Post
Vlad1977
сообщение Feb 11 2012, 17:51
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 13-04-09
Пользователь №: 47 606



Пропасть может любой пакет, было такое, что он полностью не пришел на сервер, хотя в логах wip_write показывает что все отправилось.

Цитата(sobr @ Feb 9 2012, 05:44) *
Буферизация в приложении есть? Или пытаетесь все 200 байт в юарт принять разом?

Че то я не пойму при чем тут уарт...
На модеме данные скаладываются в буффер, в колбеке от уарта, буффер довольно большой. Потом по таймеру вызывается wip_write и начинает частями из этого буффера отпарвлять.
Go to the top of the page
 
+Quote Post
sobr
сообщение Feb 12 2012, 06:06
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Цитата(Vlad1977 @ Feb 12 2012, 00:51) *
Че то я не пойму при чем тут уарт...
На модеме данные скаладываются в буффер, в колбеке от уарта, буффер довольно большой. Потом по таймеру вызывается wip_write и начинает частями из этого буффера отпарвлять.
Вот причем:
Цитата
В уарт славиваются данные и по таймеру отправляются на сервер
Данные в уарт славиваются все? Размер пакета который уарт может принять - 120 байт, может здесь теряете?
Go to the top of the page
 
+Quote Post
Vlad1977
сообщение Feb 12 2012, 09:22
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 13-04-09
Пользователь №: 47 606



Цитата(sobr @ Feb 12 2012, 10:06) *
Вот причем:Данные в уарт славиваются все? Размер пакета который уарт может принять - 120 байт, может здесь теряете?

Да с уартом все в порядке, работает как часы, ничего там не теряется.
Go to the top of the page
 
+Quote Post
sobr
сообщение Feb 12 2012, 12:59
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Цитата(Vlad1977 @ Feb 12 2012, 16:22) *
Да с уартом все в порядке, работает как часы, ничего там не теряется.

У меня нормально все уходит.
Go to the top of the page
 
+Quote Post
Vlad1977
сообщение Feb 12 2012, 19:40
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 13-04-09
Пользователь №: 47 606



Цитата(sobr @ Feb 12 2012, 16:59) *
У меня нормально все уходит.

А вы сколько за раз отправляете данных? какая пауза между отправкой? и какой оператор?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:21
Рейтинг@Mail.ru


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