Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Python и flash, AS 2.0 нету связи (http://www.flasher.ru/forum/showthread.php?t=147101)

deman455 26.11.2010 03:04

Python и flash, AS 2.0 нету связи
 
Создал не большой сокет сервер на питоне, так же сделал клиент на питоне. При коннекте клиента на питоне к серверу на питоне, соединение отличное, но при попытке коннекта флеша 0 реакций. Вот собственно сам флеш:

Код AS1/AS2:

    var socket = new XMLSocket()
    socket.onConnect = function (success) {
        if (success) {
            trace ("Соединение установлено!")
        } else {
            trace ("Попытка соединения завершилась сбоем!")
        }
    };
    if (!socket.connect("127.0.0.1", 2727)) {
        trace ("Не удалось установить соединение!")
    }

Тестил только локально. Сервер тоже не подает никаких сигналов о том что флеш хотя бы пытался подключиться...

Если надо, вот питон:

Код:

import pickle
import socket
import threading

class ClientThread ( threading.Thread ):

  def __init__ ( self, channel, details ):

      self.channel = channel
      self.details = details
      threading.Thread.__init__ ( self )

  def run ( self ):
      print 'Received connection:', self.details [ 0 ]
      self.channel.send ( pickledList )
      print self.channel.recv ( 1024 );
      self.channel.close()
      print 'Closed connection:', self.details [ 0 ]

server = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
server.bind ( ( '', 2727 ) )
server.listen ( 5 )

while True:
  channel, details = server.accept()
  ClientThread ( channel, details ).start()


leofit 26.11.2010 11:03

попробуйте так
Код AS3:

socket.connect(null, 2727)

Если Вы из браузера проверяете (а не из среды разработки) то в качестве хоста надо прописывать ДОМЕН, ip не подойдет

membrilius 26.11.2010 12:47

Вопрос в вопросе. Кто-нибудь знает как привязать Python 3.* к Apache?

вот 2.7 можно через mod_wsgi, ну или через mod_python (но он вообще для каких-то бАрАдатых версий)... а что в 3.*, он как ни как 2 года назад РЕЛИЗовался..

deman455 26.11.2010 13:30

Всеровно не помогло... Флешку из среды разработки запускаю. Есть ли еще какие то варианты? Пользуюсь AS 2.0

leofit 26.11.2010 13:38

Я реализовывал все тоже самое, только на AS3, работало без проблем. Так вроде все правильно, единственное - какую версию плеера указываете при публикации?

deman455 26.11.2010 13:42

Хм. Дык проблема и не в питоне. Пробовал сервер на C++ , такая же фигня, никакой реакции сервер на попытку коннекта флешки.

Добавлено через 50 секунд
По стандарту, 7-ю версию

leofit 26.11.2010 13:45

Не в питоне и не во флеше, я про это и говорю. ) Мб версия плеера или фаервол какой нить.. Больше идей нету

deman455 26.11.2010 18:13

Такая фишка на двух компьютерах сразу! На ноутбуке и на стационаром. Не знаю уже что делать ( А что может блокировать, localhost: port (порт изменял) может быть занят? Хотя нет, все таки ж Клиент на питоне коннектит спокойно...

leofit 26.11.2010 18:31

Видимо и там и там стоит Win7 или типа того =) Только что специально запустил оба ваших скрипта (flash & python)
итог:
flash: Соединение установлено!
python: Received connection: 127.0.0.1
(ну и + ошибки про picledList, но это мелочи)

Так что смотрите свое ПО

deman455 26.11.2010 21:17

Все таки сделал коннект, залил на сервер. Но при коннекте флешки, на сервер выдает:

Received connection: <мой ип>
<policy-file-request/>
Closed connection: <мой ип>

Хотя задержку на закрытие соединение я поставил.

А вот что пишет флешка: "Попытка соединения завершилась сбоем!"

Добавлено через 3 минуты
На сколько я понял надо что то прописать в crossdomain.xml, вот только что...

Добавлено через 20 минут
Покопался по форуму, нашел что надо создавать типу crossdomain на сервере, такого плана:
Код:

       
data = "<?xml version=\"1.0\"?>";
        data += "<!DOCTYPE cross-domain-policy SYSTEM \"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd\">";
        data += "<cross-domain-policy>";
        data += "<allow-access-from domain=\"*\" to-ports=\"*\" />";
        data += "</cross-domain-policy>\u0000";

Этот ответ надо отсылать после того как на сервер придет <policy-file-request/>.

Но не смотря на это почему то нифига не работает, написано что коннект закрыт (на сервере) а на флешки пишет что Попытка соединения завершилась сбоем...

Добавлено через 2 часа 8 минут
Оказываеться проблема в среде разработки. На Adobe Flash CS4 работает все на ура...

Psycho Tiger 27.11.2010 14:15

А, дело в безопасности.
Установите свою рабочую зону доверенной.


Часовой пояс GMT +4, время: 11:49.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.