Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.12.2010, 23:59
nucleartux вне форума Посмотреть профиль Отправить личное сообщение для nucleartux Найти все сообщения от nucleartux
  № 1  
Ответить с цитированием
nucleartux

Регистрация: Dec 2010
Сообщений: 12
По умолчанию Сокет-сервер на питоне

Питон сервер:
Код:
import asyncore
import socket

class EchoHandler(asyncore.dispatcher_with_send):

    def handle_read(self):
		data = self.recv(1024)
		if data:
			print 'Received',repr(data)
			if(str(repr(data)).find('<policy-file-request/>')!=-1):
				print 'received policy'
				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";
				self.send(data)
			else:
				self.send(data)

class EchoServer(asyncore.dispatcher):

    def __init__(self, host, port):
        asyncore.dispatcher.__init__(self)
        self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
        self.set_reuse_addr()
        self.bind((host, port))
        self.listen(5)

    def handle_accept(self):
        pair = self.accept()
        if pair is None:
            pass
        else:
            sock, addr = pair
            print 'Incoming connection from %s' % repr(addr)
            handler = EchoHandler(sock)

server = EchoServer('', 843)
asyncore.loop()
Флеш:
Код AS3:
var serverURL = "127.0.0.1";
Security.allowDomain(serverURL);
Security.loadPolicyFile("xmlsocket://"+serverURL+":843");
trace("loaded policy");
var xmlSocket:XMLSocket = new XMLSocket();
xmlSocket.connect(serverURL, 843);
 
xmlSocket.addEventListener(DataEvent.DATA, onIncomingData);
xmlSocket.addEventListener(Event.CONNECT, onConnect);
stage.addEventListener(MouseEvent.CLICK, onConnect);
function onIncomingData(event:DataEvent):void
{
    trace("[" + event.type + "] " + event.data);
}
 
function onConnect(event:Event):void
{
	xmlSocket.send("Hello World\n");
}
Проблема в то, что если запускать флешку из редактора то все работает, а если закинуть на локальный веб-сервер то видим только:
Incoming connection from ('cl.ie.nt.ip', 40567)
Received '<policy-file-request/>\x00'
received policy

Старый 23.12.2010, 16:28
taneR вне форума Посмотреть профиль Отправить личное сообщение для taneR Найти все сообщения от taneR
  № 2  
Ответить с цитированием
taneR

Регистрация: Aug 2005
Адрес: Москва
Сообщений: 96
Отправить сообщение для taneR с помощью ICQ
crossdomain.xml

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
flash , python , socket
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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