首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

AS跟Java的Rpg开发

2012-12-18 
AS和Java的Rpg开发测试下怎么都可以,发布成exe文件,也没有任何问题,但是以html访问swf的方式连接,却总是连

AS和Java的Rpg开发

测试下怎么都可以,发布成exe文件,也没有任何问题,但是以html访问swf的方式连接,却总是连不上,出现Error #2048 的SecurityErrorEvent 错误信息
然后,就在java那头加了接收<policy-file-request/>的代码,但是还是不行,现在我把代码贴上来,请大家帮帮忙
java服务器
RPGServer.java

import java.net.*;import java.io.*;import java.util.*;public class RPGServer {        private ServerSocket server;        private Boolean serverStop = true;        private RPGManager bMan = new RPGManager();        private int ServerCount = 0;        private HashMap userList = new HashMap();        private HashMap userNameList = new HashMap();        public RPGServer() {        }        void startServer() {                try {                        server = new ServerSocket(10000);                        System.out.println("RPGServer 建て終わりました");                        while (true) {                                Socket socket = server.accept();                                Chat_Thread chatThread = new Chat_Thread(socket, "socket"                                                + ServerCount);                                chatThread.start();                                userList.put("socket" + ServerCount, chatThread);                                bMan.add(socket);                                bMan.sendToSocket(socket, "socketId:socket" + (ServerCount++));                                bMan.sendClientInfo();                        }                } catch (Exception e) {                        System.out.println(e);                }        }        public static void main(String[] args) {                RPGServer server = new RPGServer();                server.startServer();        }        class Chat_Thread extends Thread {                String msg;                Socket socket;                String socketId;                String socketName;                int x;                int y;                private BufferedReader reader;                // private PrintWriter writer;                private BufferedWriter writer;                private String xml = "<?xml version="1.0" encoding="UTF-8"?>" + "<cross-domain-policy>" +                        "<allow-access-from domain='*' to-ports='*' />" + "</cross-domain-policy>";                Chat_Thread(Socket socket) {                        this.socket = socket;                }                Chat_Thread(Socket socket, String socketidvalue) {                        this.socket = socket;                        this.socketId = socketidvalue;                }                public void run() {                        try {                                reader = new BufferedReader(new InputStreamReader(socket                                                .getInputStream(), "utf8"));                                writer = new BufferedWriter(new OutputStreamWriter(socket                                                .getOutputStream(), "UTF-8"));                                // writer=new PrintWriter(socket.getOutputStream(),true);                                // String msg;                                while ((msg = reader.readLine()) != null) {                                        System.out.println("RPGServer run msg = " + msg + msg.compareTo("<policy-file-request/>"));                                        if(msg.compareTo("<policy-file-request/>") == 1){                                                System.out.println("RPGServer run ");                                                writer.write(xml + "\0");                                                writer.flush();                                        }else if (msg.compareTo("stop") == 0) {                                                System.out.println("stop");                                                serverStop = false;                                                server.close();                                        }                                }                        } catch (Exception e) {                                e.printStackTrace();                                System.out.println(e.getMessage());                        } finally {                                try {                                        bMan.remove(socket);                                        if (reader != null)                                                reader.close();                                        if (writer != null)                                                writer.close();                                        if (socket != null)                                                socket.close();                                        reader = null;                                        writer = null;                                        socket = null;                                        userNameList.remove(socketName);                                        userList.remove(socketId);                                        bMan.sendToAll("deleteuser:" + socketName);                                        System.out.println("お客様離れました");                                        bMan.sendClientInfo();                                        if (msg.compareTo("stop") == 0) {                                                System.out.println("stop");                                                // serverStop = false;                                                server.close();                                        }                                } catch (Exception e) {                                }                        }                }        }}class RPGManager extends Vector {        RPGManager() {        }        void add(Socket sock) {                System.out.println("add sock : " + sock);                super.add(sock);        }        void remove(Socket sock) {                super.remove(sock);        }        synchronized void sendToSocket(Socket sock, String msg) {                System.out.println("sendToSocket sock : " + sock);                BufferedWriter writer = null;                try {                        writer = new BufferedWriter(new OutputStreamWriter(sock                                        .getOutputStream(), "UTF-8"));                        if (writer != null) {                                writer.write(msg);                                writer.flush();                        }                } catch (Exception ie) {                }        }        synchronized void sendToAll(String msg) {                System.out.println("sendToAll run = " + msg);                // PrintWriter writer=null;                BufferedWriter writer = null;                Socket sock;                for (int i = 0; i < size(); i++) {                        sock = (Socket) elementAt(i);                        try {                                writer = new BufferedWriter(new OutputStreamWriter(sock                                                .getOutputStream(), "UTF-8"));                                if (writer != null) {                                        writer.write(msg);                                        writer.flush();                                }                                // writer=new PrintWriter(sock.getOutputStream(),true);                        } catch (Exception ie) {                        }                }        }        synchronized void sendClientInfo() {                String info = ":今の人数:" + size();                System.out.println(info);                sendToAll(info);        }}
?as方面
                public function con():void{                        socket=new Socket();                        socket.addEventListener(Event.CONNECT,onConnect, false, 0, true);//注册侦听函数                        socket.addEventListener( IOErrorEvent.IO_ERROR , failConnect , false, 0, true);                        socket.addEventListener(Event.CLOSE,funClose); //监听连接关闭                                           socket.addEventListener( ProgressEvent.SOCKET_DATA, onSocketData );                                                socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError, false, 0, true);                        //socket.connect("127.0.0.1",10000);//连接Socket服务器                        socket.connect("localhost",10000);//连接Socket服务器                }                private function connect():void {                          socket.writeUTFBytes("login:" +_player.name + "\n");                          socket.flush( );                }                   private function funClose(e:Event):void{                        _worldTextBox.text =_worldTextBox.text + "\n" +"服务器关闭";                        trace("服务器关闭");                   }                   private function onConnect(e:Event):void{                        _worldTextBox.text =_worldTextBox.text + "\n" +"服务器已经连接,正在验证用户";                  }                   private function failConnect(ev:IOErrorEvent):void{                        trace("error");                  }                   private function onSocketData( event:ProgressEvent ):void {                        //trace( "Socket received " + socket.bytesAvailable + " byte(s) of data:" );                        _worldTextBox.text =_worldTextBox.text + "\n" + "Socket received " + socket.bytesAvailable + " byte(s) of data:";                        while ( socket.bytesAvailable ) {                                                        var string:String = socket.readUTFBytes(socket.bytesAvailable);                        _worldTextBox.text =_worldTextBox.text + "\n" + string;                                trace( "GameMap onSocketData string : " + string);                        }        }                private function onSecurityError(evt:SecurityErrorEvent):void                {                        _worldTextBox.text =_worldTextBox.text + "\n" +"安全错误" + evt.toString() + "\n" + evt.text;                }                private function onClosed(evt:Event):void                {                        _worldTextBox.text =_worldTextBox.text + "\n" +"服务器关闭";                }
?

热点排行