`
wgcode
  • 浏览: 601575 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

AS和Java的Rpg开发

    博客分类:
  • Java
阅读更多

测试下怎么都可以,发布成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" +"服务器关闭";
                }
 

分享到:
评论

相关推荐

    IBM AS400编程_IBM_RPG_AS400_programming_

    IBM iSeries (AS/400) 提供了一个集成的开发环境(Integrated Language Environment, ILE),允许RPG与其他编程语言(如C、Java)进行协作。ILE使得多语言的模块可以共享资源,提高了开发效率和系统的整体性能。 ...

    AS400,RPGAS400,RPG资源

    学习和利用这些资源,你可以深入理解RPG编程,掌握如何在AS400系统上开发和维护业务应用程序。这些资源对于想要提升AS400和RPG技能的开发者来说,无疑是一份宝贵的资料。通过研究和实践,你可以学习到如何定义数据库...

    AS400RPG编程语言入门学习资料汇总

    9. **集成开发环境(IDE)**:IBM提供的RPG开发工具,如RDi(Rational Developer for i),提供了图形化的开发界面和调试工具,帮助程序员更高效地编写和测试代码。 10. **现代RPG实践**:随着技术的发展,RPGLE也...

    JAVA FOR RPG

    - **Java工具集:** 如编译器、调试器等工具,帮助开发者进行Java应用的开发和维护。 #### 2. iSeries Server特定实现 - **iSeries JVM:** 在iSeries服务器上运行的JVM是专门针对该平台优化过的版本,确保了Java...

    As400操作系统测试题目

    本资源摘要信息将围绕AS400操作系统测试题目,包括AS400系统开发语言RPG、操作命令CL、数据库操作DB2的测试题目,涵盖了AS400操作系统的基础知识和操作命令等方面。 AS400操作系统基础知识 AS400操作系统是一种...

    IBM AS400计算机教程(完整版)_AS400_RPG_IBM_book.zip

    RPG以其简洁的语法和对数据库操作的高效支持而闻名,是许多企业在AS400平台上开发应用程序的首选工具。 教程中可能会涵盖以下关键知识点: 1. **AS400系统架构**:AS400的硬件结构,包括CPU、内存、存储系统、I/O...

    Building AS400 Internet-Based Applications with Java

    Net.Data之所以被推荐,是因为其能够提供快速开发和部署的能力。它允许开发者通过简单的脚本语言处理数据,生成动态网页内容。 3.2 Net.Data的处理方式 Net.Data处理的过程涉及接收客户端请求,执行定义的宏来处理...

    ILE+RPG+for+AS400+参考总结_IT168文库

    ILE RPG 在 AS/400 上提供了一个完全集成的开发环境,使得开发者能够高效地开发和部署应用程序。 **性能优化:** 通过利用 RISC 系统的特点,ILE RPG 能够实现高效的代码执行,从而提高整体应用程序的性能。 **跨...

    RPG中文参考

    AS/400平台开发资料,RPG语言必备

    as400资料(inside the as400)

    它支持多种编程语言,如RPG (Report Program Generator),COBOL,以及更现代的Java和.NET,使得开发者可以根据业务需求选择最适合的语言进行开发。OS/400还提供了一个集成的数据库管理系统——DB2 for i,这是一款...

    as400 jdbc驱动jar包

    3. SQL支持:jt400驱动程序支持SQL标准以及AS/400特有的SQL方言,如SQL/RPG和CL命令的执行。 4. 类型映射:驱动程序处理Java类型与AS/400数据类型的映射,例如将Java的`String`映射为AS/400的CHAR或VARCHAR。 5. ...

    ILE RPG Reference.pdf

    ILE RPG是一种专门用于在IBM i系列(原AS/400)计算机上进行程序开发的语言。它基于传统的RPG语言,并在功能和灵活性方面进行了增强。ILE RPG支持模块化编程,并可以与多种其他语言(如C、Java等)无缝集成,这使得...

    AS400快速开发培训教材精华版

    它包含了一整套开发工具和服务程序,支持多种编程语言,如RPG(Report Program Generator)、COBOL、Java、PHP等,用于构建和运行企业应用。 3. **DB2 for i数据库**: AS400使用的数据库管理系统DB2 for i,是一...

    ILE-RPG-Programmer-Guide.zip_RPG

    ILE(Integrated Language Environment)是IBM为AS400系统引入的一个集成开发环境,旨在提高程序的可重用性、模块化和多语言支持。通过ILE,RPG程序员可以利用面向对象的概念,如继承、封装和多态性,来提升代码的...

    AS400入门+中文文档.zip

    它内置了数据库管理(DB2 for i)、编程语言(如RPG、CL、Java)和Web服务,简化了系统管理和维护。 3. RPG(Report Program Generator): RPG是AS400上的主要编程语言之一,用于编写业务逻辑和数据处理程序。RPG...

    AS400技术手册1.7--PDF版本

    综上所述,AS400技术手册1.7版是一份极具价值的技术参考文献,它不仅为AS400系统开发者提供了编程和数据库管理的全面知识,而且还深入到每个技术细节,为完成高质量的应用程序开发提供了坚实的理论和实践基础。...

    有关as400的内容

    AS400不仅支持多种编程语言,如RPG IV、CL、Java等,还提供了丰富的系统管理和应用程序开发工具。 #### AS400中的文件系统与目录结构 AS400采用了独特的文件系统和目录结构。在AS400上,所有的文件和程序都存储在...

    IBM AS 400计算机概论

    这个操作系统不仅包含了数据库管理、网络服务、安全性、作业调度等基础功能,还包含了开发工具和应用程序接口,使得用户可以直接在系统上开发和运行企业级应用。 **数据库管理系统** IBM AS/400内置了DB2 for i...

    AS400 中文技术手册

    随着技术的发展,AS400也引入了现代编程语言,如Java和PHP,以满足更广泛的开发需求。 五、应用开发与集成 AS400提供了丰富的开发工具,如IBM iSeries Access、RDi (Rational Developer for i)等,支持图形化界面...

    as400 培训讲义

    这份培训讲义将帮助读者全面了解AS/400系统,从基础操作到高级编程,为在AS/400平台上进行开发和管理工作打下坚实的基础。通过深入学习,可以掌握如何高效地利用AS/400平台处理业务,优化企业的IT架构,并确保系统的...

Global site tag (gtag.js) - Google Analytics