Показать сообщение отдельно
Старый 04.12.2012, 16:59
client510 вне форума Посмотреть профиль Отправить личное сообщение для client510 Найти все сообщения от client510
  № 9  
Ответить с цитированием
client510

Регистрация: Nov 2012
Сообщений: 30
Уже десять дней топчусь во круг сщкетов. Не ни кто не может помочь? Я перепробовал все выше предлагаемые варианты, но эффекта - 0.
Вот все мои коды:
Сервер
Код:
import java.net.*;
import java.io.*;

class SimpleServer
{
    public static void main(String[] args)
    {
        try
        {
            System.out.println("-> Security server started...");
            ServerSocket server = new ServerSocket(2525);
            Socket client;
            DataOutputStream out;
            DataInputStream in;
            
            // Reading crossdomain.xml
            FileInputStream xmlFile = new FileInputStream("crossdomain.xml");
            int xmlBytesCount = xmlFile.available();
            
            byte[] xmlBytes = new byte[xmlBytesCount + 1];
            xmlFile.read(xmlBytes, 0, xmlBytesCount);
            xmlBytes[xmlBytesCount] = 0;
            xmlFile.close();
            
            byte[] policyRequest = new byte[23];
            
//            for (;;)
//          {
                client = server.accept();
                out = new DataOutputStream(client.getOutputStream());
                in = new DataInputStream(client.getInputStream());
                
                in.read(policyRequest, 0, 23);
                
                out.write(xmlBytes, 0, xmlBytesCount + 1);
                out.flush();
                System.out.println(":: FSS :: Policy sended to " + client.toString());
                client.close();
//        }
                
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        
        int port = 4444; // случайный порт (может быть любое число от 1025 до 65535)
        SimpleServer(port);
       
    }
    static ServerSocket socket; 
    static Socket incoming; 
    static BufferedReader readerIn; 
    static PrintStream printOut; 
 
    private static void SimpleServer(int port) 
    { 
        System.out.println(">> Starting SimpleServer"); 
        try 
        { 
            socket = new ServerSocket(port); 
            incoming = socket.accept(); 
            readerIn = new BufferedReader(new InputStreamReader(incoming.getInputStream())); 
            printOut = new PrintStream(incoming.getOutputStream()); 
            out("Enter EXIT to exit.\r"); 
            boolean done = false; 
            while (!done) 
            { 
                String str = readerIn.readLine(); 
                if (str == null) 
                { 
                    done = true; 
                } 
                else 
                { 
                    out("Echo: " + str + (char)0);
                    if(str.trim().equals("EXIT")) 
                    { 
                        done = true; 
                    } 
                } 
                 
            } 
            incoming.close();
        } 
        catch (Exception e) 
        { 
            System.out.println(e); 
        } 
    } 
 
    private static void out(String str) 
    { 
    	System.out.println(str);
        printOut.println(str); 
        printOut.flush();
         
    } 
}
Файл политики:
Код:
i<?xml version="1.0"?> 
<!-- http://www.foo.com/crossdomain.xml --> 
<cross-domain-policy>
      <allow-access-from domain="127.0.0.1" to-ports="4444" />
</cross-domain-policy>
И флеш:
Код AS3:
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.net.XMLSocket;
import flash.text.TextField;
 
stop();
 
var userloader:URLLoader = new URLLoader();
var userrequest:URLRequest = new URLRequest("user.xml");
    userloader.load(userrequest);
	userrequest.data;
	userloader.addEventListener(Event.COMPLETE, onUserLoad);
var xml:XML = new XML;
var userLogin:XMLList;
var userPaswurd:XMLList;
var username:Array = new Array();
var pasword:Array = new Array();
var i:int;
var j:int;
 
function onUserLoad(e:Event):void
{
	xml = XML(e.target.data);
	userLogin = xml..user_login.text();
	userPaswurd = xml..user_password.text();
	for(i = 0; i < userLogin.length(); i++)
	{
		username.push(userLogin[i]);
	}
	for(j = 0; j < userPaswurd.length(); j++)
	{
		pasword.push(userPaswurd[j]);
	}
}
 
var configloader:URLLoader = new URLLoader();
var configrequest:URLRequest = new URLRequest("configuration.xml");
    configloader.load(configrequest);
	configloader.addEventListener(Event.COMPLETE, onSocketConfig);
var socketconfig:XML;
var sockethost:XMLList;
var socketport:XMLList;
 
function onSocketConfig(e:Event):void
{
	socketconfig = XML (e.target.data);
	sockethost = socketconfig..socket_host.text();
	socketport = socketconfig..socket_port.text();
}
var ports:Number = 4444;
var xmlsocket:XMLSocket = new XMLSocket("127.0.0.1", ports);
var textFields:TextField = new TextField();
	xmlsocket.addEventListener(Event.CLOSE, closeSocket);
	xmlsocket.addEventListener(Event.CONNECT, connectSocket);
	xmlsocket.addEventListener(DataEvent.DATA, dataSocket);
	xmlsocket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorSocket);
	xmlsocket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorSocket);
 
enter_page.addEventListener(MouseEvent.CLICK, onEnter);
 
function onEnter(e:MouseEvent):void
{
	var logins:String = logins.text;
	var paswords:String = paswords.text;
	var categories:String = categories.text;
	var k:int;
	var l:int;
 
	if(logins == "" || paswords == "")
	{
		trace(enter_status.text = ("Ошибка! Не заполнены поля"));
		return;
	}
 
	for(k = 0; k < username.length; k++)
	{
		if(logins == username[k])
		{
			for(l = 0; l < pasword.length; l++)
	        {
				if(paswords == pasword[l])
				{
					xmlsocket.connect("127.0.0.1", 2525);
	                try
	                {
                		Security.loadPolicyFile("xmlsocket://127.0.0.1:2525");
	                }
                	catch(e:Error)
                	{
                		textFields.appendText("\n Нет файла политики! \n");
	                }
	                xmlsocket.connect("127.0.0.1",ports);
					if(true)
					{
					   MovieClip(this.root).gotoAndStop(1, "Монтажный кадр 6");
					}
				}
	        }
		}
	}
	if(logins != username[k] || paswords != pasword[l])
	{
		trace(enter_status.text = ("Не верный логин или пароль."));
		return;
	}
}
function closeSocket(event:Event):void 
{
	trace("\ncloseHandler: \n" + event);
}
function connectSocket(event:Event):void 
{
	trace("\nconnectHandler: \n" + event);
	xmlsocket.send("test\n");
	trace("data sending...\n");
}
function dataSocket(event:DataEvent):void 
{
    trace("\ndataHandler: \n" + event);
}
function ioErrorSocket(event:IOErrorEvent):void 
{
	trace("\nioErrorHandler: \n" + event);
}
function securityErrorSocket(event:SecurityErrorEvent):void 
{
	trace("\nsecurityErrorHandler: \n" + event);
}
 
reminder.addEventListener(MouseEvent.CLICK, onreminder);
 
function onreminder(e:MouseEvent):void
{
	gotoAndStop(2);
}
А это вывод:
Код:
ioErrorHandler: 
[IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2031: Ошибка сокета. URL: 127.0.0.1"]

securityErrorHandler: 
[SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048: Нарушение изолированной среды: file:///E|/WebServers2/home/videochat/www/avfc%5F1%5F0.swf не может загрузить данные из 127.0.0.1:4444."]
Кто может помогите разобраться пожалуйста!