|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:42 am
Как прехвърляте двоични данни през HTTP?
| Автор |
Съобщение |
|
abramabra
Ранг: Минаващ
Регистриран на: Съб Окт 21, 2006 6:39 pm Мнения: 76
|
 Как прехвърляте двоични данни през HTTP?
Как прехвърляте двоични данни през HTTP?
От известно време съм решил вместо ASCII да си изпращам данните от контролера двоично, но не мога да го направя.
Четох в тия два форума, но явно и там не е ясно:
http://forums.data.bg/viewtopic.php?t=1085158
http://clubs.dir.bg/showthreaded.php?Board=php&Number=1946625554&page=0&view=collapsed&sb=5&part=
Разбира се, тук става дума за JS и PHP, но ако мога да го схвана на JS, ще си направя и ХТТП-то на микроконтролера.
PS Интересува ме управлението на протокола, езика и контролера са без значение.
|
| Чет Дек 21, 2006 2:29 am |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Реално погледнато пращаш байтове - дали ще са кодирани символи или нещо друго - все са двоични  . Та в тая връзка ако дадеш малко повече инфо какво искаш да правиш може пък някой да ти помогне  . Другия момент е, че трябва да си голям мазохист да пишеш за микроконтролери на JS, то и с бейсика е същото (rumen-е не се засягай  ), ама JS надхвърля всякакви граници  .
|
| Чет Дек 21, 2006 7:44 am |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Човека, просто е чел от страница дето е описвано за JS. Едва ли има идея да пуска JS на желязото.
Аз не съм голям експерт по мрежови комуникации, ама ако просто ще се прехвърлят данни от ПЦ към желязо- тогава за какво ни е да се "качваме" до HTTP? Не може ли на TCP/IP да си седи?
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Чет Дек 21, 2006 9:34 am |
|
 |
|
abramabra
Ранг: Минаващ
Регистриран на: Съб Окт 21, 2006 6:39 pm Мнения: 76
|
"Реално" погледнато единствената разлика е, че ако са кодирани (аски ило байс64 или както и да е) се изпраща подмножество на [0..255], а не всички възможни стойности. Това е относно "основи на кодирането" Не се засягам, но те моля да четеш поста ми - не съм писал, че ще програмирам контролера си на JS, просто реализацията на HTTP-то е по-лесно да се пробва на JS, а след това контролера мога да го програмирам и на машинен код - писал съм, че това не е интересно в случея. Повтарям - ако някой знае решение за контрол на двоични стриймове през HTTP на какъвто и да е език - ще ми свърши работа.
Ами от едната страна е нормален ВЕБ хост с ВЕБ сървър с PHP, а микроконтролерът (от другата страна  ) трябва да му изпраща данни. Разбира се, това става чрез сокети, TCP/IP, но по протокол е HTTP, за да го разбира WEB сървъра.
|
| Чет Дек 21, 2006 10:25 am |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
HTTP е поне 5 слоя над хардуера (хардуер->PPP(или подобно за серийна връзка)->TCP/IP->sockets->HTTP). Не мисля, че е разумна идея.
|
| Чет Дек 21, 2006 12:06 pm |
|
 |
|
t_i_t_o
Ранг: Почетен член
Регистриран на: Вто Окт 25, 2005 10:54 am Мнения: 896
|
Спред мен единствения ти начин на прехвърляш просто бин дата между двете е като представяш датата като файл, т.е. за да вземе контролера от сървъра дани трябва да свали от наго например филе1:
GET file1 HTTP/1.0\r\n\r\n, после чакаш да ти върне файла и го приемаш като изпускаш водещите паразитни символи.
За да изпратиш данни към сървъря трябва да използваш upload form която да изпратиш на сървъра с файла където той очаква.
Ако са малки данните, по добре ги кодирай например в 0х0000 формата и после ги превърни отново в бин дата в двете страни и използваи направо гет/пост заявките за обмяна на променливи със сървъра.
|
| Чет Дек 21, 2006 1:02 pm |
|
 |
|
abramabra
Ранг: Минаващ
Регистриран на: Съб Окт 21, 2006 6:39 pm Мнения: 76
|
Поясни ми как с upload form да изпратя двоичните данни.
А обемът е от порядъка на 8к, ако го кодирам base64 ще стане 10-11к.
(какво е 0х0000 - да не е всеки байт да се коддира катоп два аски символа?)
|
| Чет Дек 21, 2006 1:16 pm |
|
 |
|
abramabra
Ранг: Минаващ
Регистриран на: Съб Окт 21, 2006 6:39 pm Мнения: 76
|
Кое мислиш, че е неразумно? Да си свързвам хардуера с WEB сървър ли?
Не те разбирам, реконструкторе  !
|
| Чет Дек 21, 2006 1:17 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
Да пишеш и използваш веб-сървър на mcu.
|
| Чет Дек 21, 2006 1:24 pm |
|
 |
|
t_i_t_o
Ранг: Почетен член
Регистриран на: Вто Окт 25, 2005 10:54 am Мнения: 896
|
Идеята е че с ъплоад форм се доставя какъвто и да е файл от ХТТП клиента до сървъра, т.е. сървъра не прави никакво парсване на файла (в което явно ти си заинтересуван), твоя контролер(клиент) вместо файл ще изпрати данните които иска, но ще каже на сържъра че просто прави файл уплоад като сложи какво да е име за файла който ъплоадва. В същност ако контролера изпраща различни по смисъл данни, то "името" на файла може да се използва сървъра да разбира какво му праща контролера.
За повече инфо за ъплоад форми предполагам това ще свърши работа:
гоогле - > html tutorial upload form
|
| Чет Дек 21, 2006 1:31 pm |
|
 |
|
abramabra
Ранг: Минаващ
Регистриран на: Съб Окт 21, 2006 6:39 pm Мнения: 76
|
и WEB сървъри ма MCU съм правил (и далеч не само аз - доста са популярни напоследък), но тук не става дума за това.
Става дума MCU WEB клиент да изпраща по няколко килобайта (през GPRS, но не е съществено) на "нормален" WEB сървър.
|
| Чет Дек 21, 2006 1:50 pm |
|
 |
|
abramabra
Ранг: Минаващ
Регистриран на: Съб Окт 21, 2006 6:39 pm Мнения: 76
|
Идеята е ясна, да влезе убития  - просто не знам как се прави.
Мерси и за урока по търсене с "гоогле"
|
| Чет Дек 21, 2006 2:01 pm |
|
 |
|
t_i_t_o
Ранг: Почетен член
Регистриран на: Вто Окт 25, 2005 10:54 am Мнения: 896
|
Ако се надяваш да ти направя проекта или да ти давам уроци по ХТМЛ няма да стане - аз също си имам работа.
Оше един съвет за гугъл - не се надявай да намериш отговор на въпростите ти в БГ сайтове от мързел да не четеш на английски.
|
| Чет Дек 21, 2006 2:42 pm |
|
 |
|
valioman
Ранг: Почетен член
Регистриран на: Съб Сеп 17, 2005 5:07 pm Мнения: 813 Местоположение: Сливен
|
Предполагам че има и инсталиран на сървъра MySQL !!!
Ако има не знам кво е сложното да си напишеш софтче което да си комуникира по TCP/IP с контролера и да си инсъртваш в таблицата с данните които после изобразяваш с PHP-то.
Знам че не е по темата ти но така е по просто мисля
Поздрави!!!
|
| Чет Дек 21, 2006 3:13 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
Ясно, значи става дума за обратната посока. В случая HTTP слоя е напълно излишен, няма никакви плюсове, за разлика от минусите, които са доста.
|
| Чет Дек 21, 2006 3:32 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 2 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|