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

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

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

Регистрация: Feb 2009
Сообщений: 7
Question XMLSocket.onConnect не пашет в браузерах

Написал вот такую балду во флеше:
Код AS1/AS2:
var host:String = '192.168.17.6;
var port:Number = 1239;
 
mySock = new XMLSocket();
 
mySock.connect(host, port);
trace('соединяемся с ' + host + ":" + port + "...");
txt_log.text += 'соединяемся с ' + host + ":" + port + "..." + newline;
 
mySock.onConnect = function(success) {
	(success)? success = "успешно установлено" : success = "не установлено";
	trace('соединение ' + success);
	txt_log.text += 'соединение ' + success + newline;
	mySock.send('message');
}
И сделал вот такой сервак на PHP:
PHP код:
<?php 
   header
('Content-Type: text/plain;');
    
error_reporting(E_ALL E_WARNING);
    
set_time_limit(0);
    
ob_implicit_flush();

    
$address gethostbyname($HTTP_SERVER_VARS['SERVER_NAME']);
    
$port    1239;

    try {
    echo 
"-= Server =-\n" .$address":" .$port"\n\n";   
        echo 
'Create socket ... ';
        if ((
$sock socket_create(AF_INETSOCK_STREAMSOL_TCP)) < 0) {
            throw new 
Exception('socket_create() failed: '.socket_strerror(socket_last_error())."\n");
        } else {
            echo 
"OK\n";
        }

        echo 
'Bind socket ... ';
        if ((
$ret socket_bind($sock$address$port)) < 0) {
            throw new 
Exception('socket_bind() failed: '.socket_strerror(socket_last_error())."\n");
        } else {
            echo 
"OK\n";
        }

        echo 
'Listen socket ... ';
        if ((
$ret socket_listen($sock5)) < 0) {
            throw new 
Exception('socket_listen() failed: '.socket_strerror(socket_last_error())."\n");
        } else {
            echo 
"OK\n";
        
socket_set_nonblock($sock);
        echo 
"Waiting for a connection...\n";
        }

    
$clients = array($sock);

        do {
      
$read $clients;
       if (
socket_select($read$write NULL$except NULL0) < 1)
            continue;
        
        if (
in_array($sock$read)) {
            
$clients[] = $newsock socket_accept($sock);
            
socket_getpeername($newsock$ip);
            echo 
"New client connected: {$ip}\n";
            
$key array_search($sock$read);
            unset(
$read[$key]);
        }
   
          foreach (
$read as $read_sock) {
            
$data = @socket_read($read_sock1024PHP_NORMAL_READ);
            if (
$data === false) {
                
$key array_search($read_sock$clients);
                
socket_getpeername($clients[$key], $ip);
                unset(
$clients[$key]);
                echo 
"Client {$ip} disconnected.\n";
                continue;
            }
        }} while (
true);

    } catch (
Exception $e) {
        echo 
"\nError: ".$e->getMessage();
    }
    
    if (isset(
$sock)) {
    
        echo 
'Close socket ... ';
        
socket_close($sock);
        echo 
"OK\n";
    
    }
?>
Запускаю сервак - всё отлично. Запускаю флешку откуда угодно - socket.connect срабатывает:
PHP код:
-= Server =-
192.168.17.6:1239

Create socket 
... OK
Bind socket 
... OK
Listen socket 
... OK
Waiting 
for a connection...
New 
client connected192.168.17.6
Client 192.168.17.6 disconnected
.
New 
client connected192.168.17.6
Client 192.168.17.6 disconnected

А вот во флешке onConnect срабатывает только если запустить флеху по ctrl+Enter из проекта - с браузера же пишет, что соединение не установлено (connect всегда пашет).
В чём дело? Я уже рву волосы


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

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

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


 


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


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