Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM300 и GPRS
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Beginning
Отправляю по GPRS даные. Стандартный POST запрос в формате http. Так вот, примерно в среднем, каждая 10 посылка не доходит полностью, то 4 байта потеряются, то 30. Теряются байты в теле данных, шапка целая. Связь отличная. При этом сервер не дополучивает данные, а т.к. conten length = x, то ждёт эти x байт. При этом, если делаешь, повторный запрос, то часть шапки попадает в предыдущий (т.е. забирает то количество данных, что бы соответствовать) conten length, короче получается ”шляпа”. Самое интересное, что данные от сервера всегда приходят небитые. Отсюда вопрос – ЭТО НОРМАЛЬНО??? Соединяюсь по TCP, а он вроде как должен гарантированную доставку делать.
VDG
Цитата(Beginning @ May 23 2008, 18:27) *
При этом, если делаешь, повторный запрос, то часть шапки попадает в предыдущий

Это значит криво написан сервер.
edo
это ненормально. ищте - может быть например '\r' режется где-нибудь зря
Beginning
Цитата
Это значит криво написан сервер.

Сервер стандартный IIS 6.0 (Мелкософт).
Пробывал ещё на одном, написанном на Borland, те же "яйца". Отправка на модем идёт коректная, все байты доходят до COM порта, RTS смотрится, модем после ^Z возвращает SEND OK. Такое ощущение, что терется, где-то в стеке TCP или в прокси СЕТИ или ещё чёрт знает где smile3046.gif
Кто работал c TCP и GPRS, сталкивался с подобным???
Beginning
Помойму разобрался где грабли зарыты, но не могу их пока решить. Короче, на сервак отправляю следующее:

POST /gprs/default.aspx HTTP/1.1
Host: 12.34.56.78
Content-Length: 40

Тра-ля-ля.

Где "Тра-ля-ля." специальные данные которыу могут содержать обсалютно любые символы. Но покапав инет, понял, что можно передовать не любые символы. Отсюда видемо и трабл. На сочетании каких-то символов сервер глючит.
Отсюда вопрос: Что мне ещё добавить в запрос, что бы побороть проблему всеядности символов?
Пробывал:
Transfer-Encoding: binary
Transfer-Encoding: 8bit
Не помогло smile3046.gif
Клим
Цитата(Beginning @ May 27 2008, 12:44) *
Пробывал:
Transfer-Encoding: binary
Transfer-Encoding: 8bit
Не помогло smile3046.gif

А как же Content-Type: ?
По моему, при пост-запросе - обязателен.
Beginning
А какой бы тип указали вы, если данные уникального типа? Без Content-Type, но при передаче только string всё работает безупречно.
Клим
Цитата(Beginning @ May 27 2008, 13:42) *
А какой бы тип указали вы, если данные уникального типа? Без Content-Type, но при передаче только string всё работает безупречно.

Ну если вы сами пишете сервер - то ту как напишете, так и будет. Тогда можно вообще отойти от HTTP и POST, а использовать какой-нить свой простой протокол.
А вот если использовать стандартные сервера, то напо делать все по честному.
Например, при отправке формы (а там передается просто строка в виде var=value&var2=value2...)
Используется Content-Type: application/x-www-form-urlencoded
Beginning
Проблема решена. Всё работает как часы. Решил при помощи base64.
west329_
Цитата(Beginning @ May 28 2008, 12:03) *
Проблема решена. Всё работает как часы. Решил при помощи base64.

что это такое
Beginning
Вообще любой поисковик выдаст миллион ссылок по этому вопроссу, ну а в кратце - это стандарт кодирования для передачи данных по интернету.

http://ru.wikipedia.org/wiki/Base64
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.