Просмотр полной версии : XMLSocket Возможно ли заменить нулевой бит?
Powerhead
03.05.2006, 16:00
В actionScript существует класс XMLSocket, позволяющий работать с TCP. Событие OnData ожидает в ответе сервера нулевого бита /0 иначе работать с пришедшими данными невозможно. Вопрос: возможно ли каким-то образом изменить настройки флешки, чтобы я мог работать с данными, не дожидаясь нулевого бита? Заменить этот символ, к примеру, символом перевода строки.
В этом случае, было бы возможно из флешки работать напрямую с http, irc, pop, smtp и другими серверами
Powerhead
03.05.2006, 17:26
Да ниможит такова быть %) Возможно всё (c)
Только как.. Не понимаю, зачем макромедия сделала этот нулевой бит. Зачем накладывать ограничение, которое скрывает колоссальные возможности?
Homo Sapiens
05.05.2006, 15:48
Ах, ну да. Для твоего сведения, данные приходят пакетами, и как ты предлагаешь определить конец данных, не использую метку - нулевой байт?
Нулевой бит (или иной разделитель) используется в любой пакетной системе, сокет-серверах, потоковом видео и т.п.
Без него всего этого счастья не было бы.
Powerhead
06.05.2006, 01:22
Та ви шо? Почему же я не могу получить данные с любого tcp сервиса: например с адреса http://www.flasher.ru/forum/showthread.php?t=79174 ? Почему броузер получает данные и может с ними работать, а флешка ожидает нулевого бита (которого нет)?
а с чего вы взяли, что даже в этом случае не используется какого-либо разделителя?
Homo Sapiens
06.05.2006, 20:50
Возьми любую программу для отправки запросов и отправь Get запрос на http://www.flasher.ru/forum/showthread.php?t=79174, всё сам увидишь.
А раз уж ты всезнайка, загляни во ViewSource - увидишь тот html код, который получил браузер, хотя на экране ты видишь результат его преобразования в "человеческий вид"
Powerhead
13.05.2006, 16:58
По-моему мы о разных вещах говорим.
Я открываю соединение с flasher.ru на 80 порту, и пишу в сокет
GET /forum/showthread.php?t=79174 HTTP/1.0
Host: www.flasher.ru
Сервер получает запрос и отправляет флешке вот это:
HTTP/1.1 200 OK
Date: Sat, 13 May 2006 11:53:20 GMT
Server: Apache-AdvancedExtranetServer/2.0.48 (Mandrake Linux/6.9.100mdk) mod_perl/1.99_11 Perl/v5.8.3 mod_ssl/2.0.48 OpenSSL/0.9.7c PHP/4.3.4
.................. и тд, то есть всю текущую страницу
НО флешка, получив все эти данные, не дает мне никакой возможности к ним обраться из-за ограниенногоинтерфейса работы с сокетами.
Зато если в коде этой html страницы встретится нулевой бит ( print "\0"; на php ), то флешка позволит мне работать с полученными данными. Вот мне и интересно, каким образом можно выдрать из памяти уже полученный ответ, в котором нет нулевого бита
Powerhead, с каких это пор перевод строки перестал быть разделителем в tcp?
Homo Sapiens
13.05.2006, 17:43
А сервер на чём написан? С вероятностью 99.99% он сам выкидывает нулевой байт из сообщения, и показывает результат уже без него.
Homo Sapiens
13.05.2006, 17:45
Кстати, а нафига тебе работать с сокетами, если ты планируешь делать запрос к 80 порту для получения веб страницы? Может быть стоит воспользоваться LoadVars?
Powerhead
15.05.2006, 14:50
Powerhead, с каких это пор перевод строки перестал быть разделителем в tcp?
Я хочу найти способ, как заставить флешку использовать перевод строки в качестве разделителя, а не нулевой бит.
Кстати, а нафига тебе работать с сокетами, если ты планируешь делать запрос к 80 порту для получения веб страницы? Может быть стоит воспользоваться LoadVars?
Http-запрос я указал просто для примера. Мне это нужно, прежде всего, для поддержки постоянных соединений с разными tcp-сервисами: IRC, FTP и тд. Конечно, можно писать собственный сервер для флешки, но это резко ограничит свободу её использования.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.