Haskell, 15 символы:
p=ap(==)reverse
[еще 113] читаемая версия, 16 символы:
p x=x==reverse x
Ответ почти нет ... ну, если честно, это просто нет.
@drudru указал на правильную технологию для flash p2p, то есть stratus.
Flash p2p основан на RTMFP, который построен на UDP. На самом деле, флэш-память связывает порт, но это происходит изнутри. Не существует API, позволяющего делать это вручную.
RTMFP в основном позволяет две вещи:
Протокол p2p основан на сквозном NAT. Сам Stratus является вводным сервером. Кроме того, в целях безопасности соединение p2p также означает, оба клиента должны иметь простаивающее TCP (если я правильно помню) соединение с сервером. Я предполагаю, что, конечно, передается немного данных, но не полезная нагрузка.
Однако торрент-протокол сильно отличается от этого. Следовательно, это не вариант. Вы можете создать эквивалентный протокол поверх RTMFP, перепроектировав службу stratus (или подождать, пока он не будет открыт). Конечно, это также может быть использовано клиентами без флэш-памяти. Но, опять же, вы не сможете просматривать передаваемые данные как видео, поскольку вы получите его как параметр для некоторого вызова клиента вашего NetStream
, возможно, ByteArray
. И вы не можете воспроизвести ByteArray
сек. Вы могли бы писать не флеш-клиенты, которые публикуют видео в виде потока, но я думаю, это будет далеко от того, что вам нужно.
Если вы действительно хотите что-то подобное, вам нужна Java. Вы можете подписывать Java-апплеты, и если пользователь принимает сертификат, у них есть практически неограниченный доступ, например, вы можете привязать порты. Поскольку Java может работать с UDP, у вас может быть Java-апплет, который выполняет торрент (возможно, просто используйте кодовую базу Vuze), и если вы действительно хотите отображать его во флэш-памяти (что, в свою очередь, требует flv), вы можете имитировать локальный " Flash Media Server »и опубликуйте видео на localhost: someport. Но на самом деле флеш-бит мне кажется до смешного сложным и бесполезным. Лучше попробуйте поиграть с Java, которая, надеюсь, имеет такую возможность изначально.
Поскольку Java может работать с UDP, у вас может быть Java-апплет, который выполняет торрент (возможно, просто используйте кодовую базу Vuze), и если вы действительно хотите отображать его во флэш-памяти (что, в свою очередь, требует flv), вы можете имитировать локальный " Flash Media Server »и опубликуйте видео на localhost: someport. Но на самом деле флеш-бит мне кажется до смешного сложным и бесполезным. Лучше попробуйте поиграть с Java, которая, надеюсь, имеет такую возможность изначально. Поскольку Java может работать с UDP, у вас может быть Java-апплет, который выполняет торрент (возможно, просто используйте кодовую базу Vuze), и если вы действительно хотите отображать его во флэш-памяти (что, в свою очередь, требует flv), вы можете имитировать локальный " Flash Media Server »и опубликуйте видео на localhost: someport. Но на самом деле флеш-бит мне кажется до смешного сложным и бесполезным. Лучше попробуйте поиграть с Java, которая, надеюсь, имеет такую возможность изначально.Хммм ... это интересное предложение, храните только загруженный файл в памяти Flash. Я думаю, что это, безусловно, возможно, но, вероятно, медленно, и у вас будет ограничение на несколько сотен мегабайт.
РЕДАКТИРОВАТЬ: Это НЕ возможно, потому что вы не можете слушать порты, используя только Flash, браузер не имеет такой возможности.
Flash не позволяет вам прослушивать сокет на предмет входящих подключений. Это бы действительно затрудняют работу с существующими торрентами. Учитывая проблемы безопасности В связи с этим я не думаю, что это произойдет.
Adobe, однако, запустила собственную версию системы P2P под названием Stratus. Вы можете прочитать об этом здесь http://labs.adobe.com/technologies/stratus/