Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Как прехвърляте двоични данни през HTTP?
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=3449
Страница 1 от 2

Автор:  abramabra [ Чет Дек 21, 2006 2:29 am ]
Заглавие:  Как прехвърляте двоични данни през 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 Интересува ме управлението на протокола, езика и контролера са без значение.

Автор:  Dimitar [ Чет Дек 21, 2006 7:44 am ]
Заглавие: 

Реално погледнато пращаш байтове - дали ще са кодирани символи или нещо друго - все са двоични :) . Та в тая връзка ако дадеш малко повече инфо какво искаш да правиш може пък някой да ти помогне :) . Другия момент е, че трябва да си голям мазохист да пишеш за микроконтролери на JS, то и с бейсика е същото (rumen-е не се засягай :) ), ама JS надхвърля всякакви граници 8) .

Автор:  Цецо [ Чет Дек 21, 2006 9:34 am ]
Заглавие: 

Човека, просто е чел от страница дето е описвано за JS. Едва ли има идея да пуска JS на желязото.

Аз не съм голям експерт по мрежови комуникации, ама ако просто ще се прехвърлят данни от ПЦ към желязо- тогава за какво ни е да се "качваме" до HTTP? Не може ли на TCP/IP да си седи?

Автор:  abramabra [ Чет Дек 21, 2006 10:25 am ]
Заглавие: 

Dimitar написа:
Реално погледнато пращаш байтове - дали ще са кодирани символи или нещо друго - все са двоични :) . Та в тая връзка ако дадеш малко повече инфо какво искаш да правиш може пък някой да ти помогне :) . Другия момент е, че трябва да си голям мазохист да пишеш за микроконтролери на JS, то и с бейсика е същото (rumen-е не се засягай :) ), ама JS надхвърля всякакви граници 8) .

"Реално" погледнато единствената разлика е, че ако са кодирани (аски ило байс64 или както и да е) се изпраща подмножество на [0..255], а не всички възможни стойности. Това е относно "основи на кодирането"
Не се засягам, но те моля да четеш поста ми - не съм писал, че ще програмирам контролера си на JS, просто реализацията на HTTP-то е по-лесно да се пробва на JS, а след това контролера мога да го програмирам и на машинен код - писал съм, че това не е интересно в случея. Повтарям - ако някой знае решение за контрол на двоични стриймове през HTTP на какъвто и да е език - ще ми свърши работа.

Цецо написа:
Аз не съм голям експерт по мрежови комуникации, ама ако просто ще се прехвърлят данни от ПЦ към желязо- тогава за какво ни е да се "качваме" до HTTP? Не може ли на TCP/IP да си седи?

Ами от едната страна е нормален ВЕБ хост с ВЕБ сървър с PHP, а микроконтролерът (от другата страна :) ) трябва да му изпраща данни. Разбира се, това става чрез сокети, TCP/IP, но по протокол е HTTP, за да го разбира WEB сървъра.

Автор:  Реконструктор [ Чет Дек 21, 2006 12:06 pm ]
Заглавие: 

HTTP е поне 5 слоя над хардуера (хардуер->PPP(или подобно за серийна връзка)->TCP/IP->sockets->HTTP). Не мисля, че е разумна идея.

Автор:  t_i_t_o [ Чет Дек 21, 2006 1:02 pm ]
Заглавие: 

Спред мен единствения ти начин на прехвърляш просто бин дата между двете е като представяш датата като файл, т.е. за да вземе контролера от сървъра дани трябва да свали от наго например филе1:
GET file1 HTTP/1.0\r\n\r\n, после чакаш да ти върне файла и го приемаш като изпускаш водещите паразитни символи.

За да изпратиш данни към сървъря трябва да използваш upload form която да изпратиш на сървъра с файла където той очаква.

Ако са малки данните, по добре ги кодирай например в 0х0000 формата и после ги превърни отново в бин дата в двете страни и използваи направо гет/пост заявките за обмяна на променливи със сървъра.

Автор:  abramabra [ Чет Дек 21, 2006 1:16 pm ]
Заглавие: 

t_i_t_o написа:
Спред мен единствения ти начин на прехвърляш просто бин дата между двете е като представяш датата като файл, т.е. за да вземе контролера от сървъра дани трябва да свали от наго например филе1:
GET file1 HTTP/1.0\r\n\r\n, после чакаш да ти върне файла и го приемаш като изпускаш водещите паразитни символи.

За да изпратиш данни към сървъря трябва да използваш upload form която да изпратиш на сървъра с файла където той очаква.

Ако са малки данните, по добре ги кодирай например в 0х0000 формата и после ги превърни отново в бин дата в двете страни и използваи направо гет/пост заявките за обмяна на променливи със сървъра.


Поясни ми как с upload form да изпратя двоичните данни.
А обемът е от порядъка на 8к, ако го кодирам base64 ще стане 10-11к.
(какво е 0х0000 - да не е всеки байт да се коддира катоп два аски символа?)

Автор:  abramabra [ Чет Дек 21, 2006 1:17 pm ]
Заглавие: 

Реконструктор написа:
HTTP е поне 5 слоя над хардуера (хардуер->PPP(или подобно за серийна връзка)->TCP/IP->sockets->HTTP). Не мисля, че е разумна идея.


Кое мислиш, че е неразумно? Да си свързвам хардуера с WEB сървър ли?
Не те разбирам, реконструкторе :) !

Автор:  Реконструктор [ Чет Дек 21, 2006 1:24 pm ]
Заглавие: 

abramabra написа:
Реконструктор написа:
HTTP е поне 5 слоя над хардуера (хардуер->PPP(или подобно за серийна връзка)->TCP/IP->sockets->HTTP). Не мисля, че е разумна идея.


Кое мислиш, че е неразумно? Да си свързвам хардуера с WEB сървър ли?
Не те разбирам, реконструкторе :) !


Да пишеш и използваш веб-сървър на mcu.

Автор:  t_i_t_o [ Чет Дек 21, 2006 1:31 pm ]
Заглавие: 

Идеята е че с ъплоад форм се доставя какъвто и да е файл от ХТТП клиента до сървъра, т.е. сървъра не прави никакво парсване на файла (в което явно ти си заинтересуван), твоя контролер(клиент) вместо файл ще изпрати данните които иска, но ще каже на сържъра че просто прави файл уплоад като сложи какво да е име за файла който ъплоадва. В същност ако контролера изпраща различни по смисъл данни, то "името" на файла може да се използва сървъра да разбира какво му праща контролера.

За повече инфо за ъплоад форми предполагам това ще свърши работа:
гоогле - > html tutorial upload form

Автор:  abramabra [ Чет Дек 21, 2006 1:50 pm ]
Заглавие: 

Реконструктор написа:
abramabra написа:
Реконструктор написа:
HTTP е поне 5 слоя над хардуера (хардуер->PPP(или подобно за серийна връзка)->TCP/IP->sockets->HTTP). Не мисля, че е разумна идея.


Кое мислиш, че е неразумно? Да си свързвам хардуера с WEB сървър ли?
Не те разбирам, реконструкторе :) !


Да пишеш и използваш веб-сървър на mcu.


и WEB сървъри ма MCU съм правил (и далеч не само аз - доста са популярни напоследък), но тук не става дума за това.
Става дума MCU WEB клиент да изпраща по няколко килобайта (през GPRS, но не е съществено) на "нормален" WEB сървър.

Автор:  abramabra [ Чет Дек 21, 2006 2:01 pm ]
Заглавие: 

t_i_t_o написа:
Идеята е че с ъплоад форм се доставя какъвто и да е файл от ХТТП клиента до сървъра, т.е. сървъра не прави никакво парсване на файла (в което явно ти си заинтересуван), твоя контролер(клиент) вместо файл ще изпрати данните които иска, но ще каже на сържъра че просто прави файл уплоад като сложи какво да е име за файла който ъплоадва. В същност ако контролера изпраща различни по смисъл данни, то "името" на файла може да се използва сървъра да разбира какво му праща контролера.

За повече инфо за ъплоад форми предполагам това ще свърши работа:
гоогле - > html tutorial upload form


Идеята е ясна, да влезе убития :) - просто не знам как се прави.
Мерси и за урока по търсене с "гоогле"

Автор:  t_i_t_o [ Чет Дек 21, 2006 2:42 pm ]
Заглавие: 

abramabra написа:
t_i_t_o написа:
Идеята е че с ъплоад форм се доставя какъвто и да е файл от ХТТП клиента до сървъра, т.е. сървъра не прави никакво парсване на файла (в което явно ти си заинтересуван), твоя контролер(клиент) вместо файл ще изпрати данните които иска, но ще каже на сържъра че просто прави файл уплоад като сложи какво да е име за файла който ъплоадва. В същност ако контролера изпраща различни по смисъл данни, то "името" на файла може да се използва сървъра да разбира какво му праща контролера.

За повече инфо за ъплоад форми предполагам това ще свърши работа:
гоогле - > html tutorial upload form


Идеята е ясна, да влезе убития :) - просто не знам как се прави.
Мерси и за урока по търсене с "гоогле"


Ако се надяваш да ти направя проекта или да ти давам уроци по ХТМЛ няма да стане - аз също си имам работа.
Оше един съвет за гугъл - не се надявай да намериш отговор на въпростите ти в БГ сайтове от мързел да не четеш на английски.

Автор:  valioman [ Чет Дек 21, 2006 3:13 pm ]
Заглавие: 

Предполагам че има и инсталиран на сървъра MySQL !!!
Ако има не знам кво е сложното да си напишеш софтче което да си комуникира по TCP/IP с контролера и да си инсъртваш в таблицата с данните които после изобразяваш с PHP-то.

Знам че не е по темата ти но така е по просто мисля :)

Поздрави!!!

Автор:  Реконструктор [ Чет Дек 21, 2006 3:32 pm ]
Заглавие: 

abramabra написа:
и WEB сървъри ма MCU съм правил (и далеч не само аз - доста са популярни напоследък), но тук не става дума за това.
Става дума MCU WEB клиент да изпраща по няколко килобайта (през GPRS, но не е съществено) на "нормален" WEB сървър.


Ясно, значи става дума за обратната посока. В случая HTTP слоя е напълно излишен, няма никакви плюсове, за разлика от минусите, които са доста.

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/