Вверх ↑
Этот топик читают: Гость
Ответов: 95
Рейтинг: 2
#1: 2013-02-12 18:01:26 ЛС | профиль | цитата
Собственно, как это сделать?
Вот схемка-тест
code_30307.txt
карма: 0

0
файлы: 1code_30307.txt [922B] [85]
Ответов: 1731
Рейтинг: 68
#2: 2013-02-12 18:19:42 ЛС | профиль | цитата
Abracadabra, Доброго времени суток, чтобы ответить на ваш вопрос достаточно посмотреть пример расположенный HiAsmElementsdelphiExampleInternetSendPicture.sha
и
HiAsmElementsdelphiExampleInternetSendFile.sha
карма: 1

0
Ответов: 95
Рейтинг: 2
#3: 2013-02-13 13:48:32 ЛС | профиль | цитата
примеры не совсем подходят.
Я просто не совсем детально описал проблему.
картинка находится в интернете на некоем сайте. Я отправляю сайту через TCP_Client запрос
GET *.jpg HTTP/1.1
...
В ответ через тот же TCP_Client получаю картинку, НО перед картинкой идёт заголовок.
HTTP/1.1
Via: 1.1 SPROXY01A
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Content-Length: 2572
Expires: Sun, 1 Jan 2000 12:00:00 GMT
Date: Wed, 13 Feb 2013 09:43:57 GMT
Content-Type: image/jpeg
Server: Apache/2.2.22 (Ubuntu)
Как откинуть заголовок и получить готовую картинку? Посмотрите пример в первом посте.
P.S. пожалуйста не предлагайте использовать HHTP_Get. Интересует решение именно через TCP_Client.
карма: 0

0
файлы: 1code_30315.txt [522B] [85]
Гость
Ответов: 17029
Рейтинг: 0
#4: 2013-02-13 13:51:19 правка | ЛС | профиль | цитата
тут не TCP_Client неужен,а хттп гет

карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#5: 2013-02-13 13:53:32 правка | ЛС | профиль | цитата
выкладывай сайт куда запрос и тд,так не кто не чем не пможет

карма: 0

0
Ответов: 5446
Рейтинг: 323
#6: 2013-02-13 14:03:33 ЛС | профиль | цитата
Abracadabra, заголовок от тела отделяется двойным символом конца строки '\n'.
карма: 1

0
Ответов: 95
Рейтинг: 2
#7: 2013-02-13 14:23:37 ЛС | профиль | цитата
собрал схемку-пример.
пытаемся загрузить логотип http://forum.hiasm.com/xx/forum_logo.png
сниффером вижу, что запрос ушёл и ответ пришёл нормально.
заголовок отделяется от тела двойным переходом строки

. пытался по этому принципу собрать схему, не получается.
На текущий момент предположения такие:
1. TCP_Client при настройке dtString на выходе откидывает тело (т.к. оно не строчное) и остаётся только заголовок.
2. StrCat откидывает тело по тем же причинам.
Пока копаю дальше...
code_30317.txt
карма: 0

0
файлы: 1code_30317.txt [1.5KB] [104]
Ответов: 95
Рейтинг: 2
#8: 2013-02-15 12:21:14 ЛС | профиль | цитата
пока успехов мало.
для теста переделал немного схему. конвертирую ответ сервера StrToStream и сохраняю в файл.
в полученном файле Hex-редактором отрезал заголовок. Получилась как раз требуемая картинка
осталось разобраться, как отрезать заголовок силами Hiasm
code_30336.txt
карма: 0

0
файлы: 1code_30336.txt [882B] [74]
Гость
Ответов: 17029
Рейтинг: 0
#9: 2013-02-15 13:09:23 правка | ЛС | профиль | цитата
Abracadabra писал(а):
как отрезать заголовок силами Hiasm

code_30337.txt
карма: 0

0
Ответов: 95
Рейтинг: 2
#10: 2013-02-15 13:26:26 ЛС | профиль | цитата
г. ость, огромное спасибо. Всё оказалось не так уж и сложно.
карма: 0

0
Ответов: 95
Рейтинг: 2
#11: 2013-02-28 13:52:10 ЛС | профиль | цитата
продолжаем разговор.
в схеме TCP_Client не выдаёт данные на точку onRead, хотя сниффером вижу, что запрос на сервер уходит и ответ приходит.
если убрать Thread - всё работает, но мне надо с Thread.
есть варианты?
code_30455.txt
карма: 0

0
файлы: 1code_30455.txt [3.1KB] [104]
Гость
Ответов: 17029
Рейтинг: 0
#12: 2013-02-28 14:40:05 правка | ЛС | профиль | цитата
Abracadabra писал(а):
если убрать Thread - всё работает, но мне надо с Thread.
Бери с onSyncExec, а то nesco ругаться будет
карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#13: 2013-02-28 15:01:40 ЛС | профиль | цитата
г. ость писал(а):
Бери с onSyncExec, а то nesco ругаться будет

А с чего это мне ругаться-то onSyncExec -- это обычное событие, которое синхронизировано с общей очередью сообщений главного потока. Если взять с этой точки, то считайте, что альтернативного потока просто не существует. Вся цепь событий, взятых с этой точки, будет работать в главном потоке приложения.
карма: 22

0
Ответов: 95
Рейтинг: 2
#14: 2013-02-28 15:45:15 ЛС | профиль | цитата
и всё же, у кого-нибудь есть идеи, почему TCP_Client не работает в отдельном потоке?
карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#15: 2013-02-28 17:12:50 ЛС | профиль | цитата
Abracadabra писал(а):
и всё же, у кого-нибудь есть идеи, почему TCP_Client не работает в отдельном потоке?

А фиг его знает почему, но есть одна фича, которая заставляет это дело работать

Add(Thread,6127077,231,196)
{
Delay=1
FastStop=0
link(onExec,11209231:doString,[(284,202)(284,251)])
}
Add(MainForm,89020,147,168)
{
Left=21
Top=105
Width=291
Height=192
Position=1
link(onCreate,12675748:doEvent1,[])
}
Add(FormatStr,11209231,294,245)
{
DataCount=1
Mask="GET http://forum.hiasm.com/xx/forum_logo.png HTTP/1.1
Host: www.hiasm.com
Connection: close

"
link(onFString,5120662:doEvent1,[])
}
Add(TCP_Client,5791366,371,245)
{
Port=80
IP="93.81.240.87"
link(onRead,6565354:doStrCat,[])
link(onDisconnect,11700096:doEvent1,[])
}
Add(Hub,5120662,336,245)
{
link(onEvent1,5791366:doOpen,[])
link(onEvent2,5791366:doSend,[(361,258)(361,265)])
}
Add(StrCat,6565354,469,245)
{
Point(doClear)
link(Str1,15367767:Var3,[(475,236)(506,236)(506,283)])
}
Add(GetDataEx,15367767,469,278)
{
link(Data,6565354:Result,[])
}
Add(BlockFind,16567227,469,294)
{
Delete=0
StartBlock="HTTP"
EndBlock="

"
link(onEndSearch,13392832:doConvert,[])
link(Text,15367767:Var2,[])
}
Add(StreamConvertor,13392832,511,301)
{
Mode=7
link(onResult,16677308:doEvent1,[])
}
Add(Hub,16677308,553,301)
{
link(onEvent1,5749663:doLoadFromStream,[])
link(onEvent2,5749663:doBitmap,[])
}
Add(Image,3059767,707,182)
{
Left=15
Top=15
Width=235
Height=120
ViewStyle=0
}
Add(Jpeg,5749663,581,287)
{
Point(doLoadFromStream)
Point(doBitmap)
link(onBitmap,3839745:doEvent1,[])
}
Add(Hub,11700096,420,259)
{
link(onEvent1,16567227:doSearch,[(459,265)(459,300)])
link(onEvent2,6565354:doClear,[(445,272)(445,258)])
}
Add(Gif,35693,658,175)
{
DrawSource=2
Point(Stream)
Point(doPlay)
Point(doStop)
link(onDraw,3998465:doWork2,[])
link(Stream,14947117:Stream,[])
}
Add(MemoryStream,14947117,672,133)
{
Stream=[ZIPA102000078DA73F774B3B04C14601060F8C4C0F01F081818FE1D3AF4CFC909C4484AFAD7D4F46FD224C5FFDC7EAE21C1CE8E01AE467A06CC8C0C0C0C8AFFA49C8B52134B525314CA334B321412B3122B72F21353F432F3D2F219147FB270720155E9003103C8700666638E5D77FE199CF2CC164EE6B0E2909CC3EE37238DD375A3E1A15D22330F6ED34B3872A8F0826EB484E5DD65EC96123CEC5ED9CF3D18B099630232C7AF475141BA8567F786675D2E854E81210986920A093EAED1522B6A64B696DE7F9B28C1DEA0705DE2519BB3E42655152D216C069971EC3252D63EE57862C2992961FA6CADC9327C5F24FD3E7A3A25CE585D20F381EBCCE6BD32C756683345BE15FFC3D87C98DF68658AD4FCFD2C38FC96A4AA7DCAA86DE29B3961F1ADDDCB385B1579580C5DDA13650457B9356DB828CF9C1414FBD956DEC04247AAFFC492224B1FAC7E33E2D855A4AEEDF53C45E483C4679F461EB5B2C309314921535A5B76CA65443A699E3FE520C02CF7D246FEB01AD89CA0490C389CA3706882A5F8E392E77B6ECD33903C2EF34051CF69DBDC53E16B1619F2B0718B1427EEDE60FA7D2A63A3C106CECEDDF37335BD7039E7CEBF0F9C8237E784C6CE627C77ABB0606A42C7DDC439774DA6B53ABA1D35109990307B1B232FCB210781D9860D87AE9D9B88DB1860CCAF4E75BA3247F3BA1C07C76185BEE3857C2C86062B4F6D5817207108185D61B796322994264934CD8B169CC0C060CD000300467DD67D]
}
Add(Hub,12675748,196,182)
{
OutCount=3
link(onEvent1,35693:doLoadFromStream,[])
link(onEvent2,35693:doPlay,[])
link(onEvent3,6127077:doStart,[])
}
Add(HubEx,3998465,693,182)
{
link(onEvent,3059767:doLoad,[])
}
Add(Hub,3839745,623,287)
{
link(onEvent1,35693:doStop,[(648,293)(648,202)])
link(onEvent2,3998465:doWork3,[(697,300)])
}
Add(TCP_Server,5366281,147,124)
{
}

карма: 22

1
Голосовали:faniss
Сообщение
...
Прикрепленные файлы
(файлы не залиты)