Показать сообщение отдельно
Старый 18.07.2015, 20:18
tattori вне форума Посмотреть профиль Отправить личное сообщение для tattori Найти все сообщения от tattori
  № 3  
Ответить с цитированием
tattori

Регистрация: Jul 2015
Сообщений: 73
Код AS3:
package  {
 
	import flash.display.MovieClip;
	import flash.events.ErrorEvent;
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    import flash.events.ProgressEvent;
    import flash.events.SecurityErrorEvent;
    import flash.net.Socket;
     import flash.utils.ByteArray;
     import flash.events.MouseEvent;
	 import flash.system.Security;
	 	import flash.system.SecurityPanel;
 
 
	public class main extends MovieClip {
 
 
		public function main() {
			 // укажите хост для создания подключения
            var host:String = '127.0.0.1';
            // укажите порт для создания подключения
            var port:uint = 1985;
			 // создаем объект-сокет
 
		Security.loadPolicyFile("xmlsocket://127.0.0.1:1985")
 
			 //Security.loadPolicyFile("http://127.0.0.1/crossdomain.xml");
 
           var socket = new Socket();
            // слушаем события
 
            socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler);
            socket.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            socket.addEventListener(Event.CONNECT, connectHandler);
            socket.addEventListener(ProgressEvent.SOCKET_DATA, dataHandler);
            // устанавливаем соединение по указанному хосту и порту
 
		   stage.addEventListener(Event.ENTER_FRAME, ww)
		   function ww(event:Event):void
		   {
			  socket.connect(host, port);
			  stage.removeEventListener(Event.ENTER_FRAME, ww)
		   }
 
			 /**
         * Обработчик событий об ошибках
         */
      function errorHandler(event:ErrorEvent):void
        {
 
            trace('Ошибка. error type='+event.type);
            switch (event.type) {
                case IOErrorEvent.IO_ERROR:
				ttt.text = "ошибочка";
                    trace('Ошибка возникает когда по указанному хосту не удается найти сокет-сервер');
 
					break;
                case SecurityErrorEvent.SECURITY_ERROR:
				ttt.text = "Ошибка возникает когда срабатывает политика безопасности флешки. Сокет-сервер должен вернуть полиси-файл.";
                    trace('Ошибка возникает когда срабатывает политика безопасности флешки. Сокет-сервер должен вернуть полиси-файл.');
                    break;
            }
 
        }
 
 
 
 
 
 
 
		 /**
         * Обработчик события об успешном подключении к серверу
         */var command:int = 1;
 
      function connectHandler(event:Event):void
        {
 
            ttt.text = 'соединение установлено';
			command = kkl.x;
            socket.writeUTFBytes(command);
            socket.flush();
 
        }
 
 
		 /**
         * Обработчик получения данных от сервера
         */
 
       function dataHandler(event:ProgressEvent):void
        {
			ttt.text = 'Получены новые данные';
            trace('Получены новые данные');
        var readSock:String = socket.readUTFBytes(socket.bytesAvailable)
		trace(readSock);
		ttt.text = readSock;
		stage.addEventListener(Event.ENTER_FRAME, ww)
        }
 
 
 
 
		}
	}
 
}
PHP код:
<?php

header
('Content-Type: text/plain;'); //Мы будем выводить простой текст

set_time_limit(0); //Скрипт должен работать постоянно

ob_implicit_flush(); //Все echo должны сразу же отправляться клиенту

$address '127.0.0.1'//Адрес работы сервера

$port 1985//Порт работы сервера (лучше какой-нибудь редкоиспользуемый)

if (($sock socket_create(AF_INETSOCK_STREAMSOL_TCP)) < 0) {
    
//AF_INET - семейство протоколов
    //SOCK_STREAM - тип сокета
    //SOL_TCP - протокол
    
echo "Ошибка создания сокета";
  }
  else {echo 
"Сокет создан\n";}
 
//Связываем дескриптор сокета с указанным адресом и портом
  
if (($ret socket_bind($sock$address$port)) < 0) {
    echo 
"Ошибка связи сокета с адресом и портом";}
  else {echo 
"Сокет успешно связан с адресом и портом\n"; }




 
//Начинаем прослушивание сокета (максимум 5 одновременных соединений)

  
if (($ret socket_listen($sock5)) < 0) {
    echo 
"Ошибка при попытке прослушивания сокета";
  }

  else {
    echo 
"Ждём подключение клиента\n";
  }


 


//Принимаем соединение с сокетом

    
if (($msgsock socket_accept($sock)) < 0) {
      echo 
"Ошибка при старте соединений с сокетом";
    }

 else {
      echo 
"Сокет готов к приёму сообщений\n";
    }


while(
true)
{
      echo 
'Сообщение от клиента:';
      if (
false === ($buf socket_read($msgsock1024))) {
        echo 
"Ошибка при чтении сообщения от клиента";       }
      else {
        echo 
$buf."\n"//Сообщение от клиента
      
}
  if (
'<policy-file-request/>' "\x00" === $buf) {
echo 
"ПОЛИТИКА ПРИШЛА!!!!!"
            
$crossdomain '<?xml version="1.0" encoding="UTF-8" ?><cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFileSocket.xsd"><allow-access-from domain="*" to-ports="*" secure="false" /><site-control permitted-cross-domain-policies="all" /></cross-domain-policy>'."\x00";
            
socket_write($msgsock$crossdomainstrlen($crossdomain));
 
socket_close($sock);
echo 
"ПОЛИТИКА ОТПРАВЛЕНА!!!!!"
}
else{
echo 
$buf;
}

}
         

?>
что тут не так?