Вверх ↑
Этот топик читают: Гость
Ответов: 655
Рейтинг: 18
#1: 2013-10-23 00:41:55 ЛС | профиль | цитата
Доброго вечера.

Есть простейшая схема отправки данных (в данном случае jpg).
Ломимся браузером на 178 порт и получаем картинку.
Схема которую приложил работает.

Есть необходимость формировать правильный ответ серверу на простейший запрос с web страницы.

Пробовал генерировать ответ через Format String (на схеме есть) - не работает, браузер отображает пиктограмму "разорванной картинки".
Что делаю не правильно? Как правильно сформировать ответ?
Код страницы:
code_32103.txt

Схема приложения:
code_32104.txt
------------ Дoбавленo в 00.41:
Проблему решил так:
Add(MainForm,2953706,21,105)
{
Width=179
link(onCreate,9120016:doOpen,[])
}
Add(StreamConvertor,3708782,231,119)
{
Mode=6
link(onResult,4826314:doValue,[(271,125)(271,83)])
}
Add(FileStream,9512716,182,119)
{
FileName="C:\123.jpg"
link(onLoad,3708782:doConvert,[])
}
Add(TCP_Server,9120016,133,119)
{
Port=178
Point(doCloseAll)
link(onRead,9512716:doOpen,[])
}
Add(Hub,2559834,336,119)
{
link(onEvent1,9120016:doSend,[(355,125)(355,132)(121,132)(121,139)])
link(onEvent2,9120016:doCloseAll,[(355,132)(355,139)(121,139)(121,146)])
}
Add(StrCat,7343130,273,203)
{
link(onStrCat,2559834:doEvent1,[(321,209)(321,125)])
link(Str1,8553151:FString,[])
link(Str2,4826314:Value,[])
}
Add(Memory,4826314,280,77)
{
link(onData,8553151:doString,[(324,83)(324,121)(261,121)(261,160)])
}
Add(FormatStr,8553151,273,154)
{
DataCount=0
Mask="HTTP/1.1 200 OK
Content-type: image/jpg
Content-lenght: 6381
Connection: Close

"
Point(FString)
link(onFString,7343130:doStrCat,[(317,160)(317,184)(261,184)(261,209)])
}


Вопрос к знающим: а почему через Format String не работает? А в связке StrCat работает?
карма: 0

0
файлы: 2code_32103.txt [186B] [242], code_32104.txt [691B] [223]
Ответов: 4630
Рейтинг: 749
#2: 2013-10-23 11:32:41 ЛС | профиль | цитата
FormatStr в результирующей строке заменяет символ с кодом #0 на "%", а символ с кодом #1 удаляет. Если первое мне понятно, то второе - нет.
Исходя из текущего алгоритма, компонент заточен под работу со строками, не содержащими этих символов. Если бы сервер выдавал текстовую страницу - все работало бы как надо, а вот с картинкой получается такая штука.

К тому же:
HTTP/1.1 200 OK
Content-type: image/jpeg
Content-length: 6381
Connection: Close

карма: 26

0
Ответов: 5446
Рейтинг: 323
#3: 2013-10-23 12:07:40 ЛС | профиль | цитата
Netspirit, как вариант - картинку можно в base64 отдавать. При этом надо в ответ сервера добавлять строку
 Content-Transfer-Encoding: base64

карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#4: 2013-10-23 23:10:51 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2021-05-21 12:20:40
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#5: 2013-10-23 23:27:15 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2021-05-21 12:20:40
карма: 0

0
Ответов: 4630
Рейтинг: 749
#6: 2013-10-24 12:16:01 ЛС | профиль | цитата
Без StrCat можно так:
code_32123.txt
карма: 26

0
файлы: 1code_32123.txt [1.1KB] [299]
6
Сообщение
...
Прикрепленные файлы
(файлы не залиты)