⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 packettool.java

📁 MegaMek is a networked Java clone of BattleTech, a turn-based sci-fi boardgame for 2+ players. Fight
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        if(fd.getFile() == null) {            // I want a file, y'know!            return;        }        String curpath = fd.getDirectory();        String curfile = fd.getFile();        // load!        try {            InputStream is = new FileInputStream(new File(curpath, curfile));            board.load(is);            // okay, done!            is.close();            // Record the file's name.            boardName.setText( curfile );            // Enable the send button.            butSend.setEnabled( true );        } catch(IOException ex) {            System.err.println("error opening file to save!");            System.err.println(ex);        }    }    /**     * Send the loaded board to the peer.     */        public void send() {        long start = conn.bytesSent();        Packet packet = new Packet(Packet.COMMAND_SENDING_BOARD, board);        /* 2003-12-21 : prove connectivity first, then add refinements         **              like data compression.        packet.zipData();        */        conn.send( packet );        System.out.print( "Bytes sent: " );        System.out.print( conn.bytesSent() - start );        System.out.print( ", total sent: ");        System.out.println( conn.bytesSent() );    }    /**     * Listen for incoming clients.     */    public void run() {        int port = 0;        try {            port = Integer.parseInt( hostPort.getText() );            ServerSocket serverSocket = new ServerSocket( port );            Socket s = serverSocket.accept();            serverSocket.close();                            System.out.println("Accepted peer connection.");                            conn = ConnectionFactory.getInstance().createServerConnection(s, 0);            //conn = new XmlConnection(this, s, 0);            conn.addConnectionListener(connectionListener);                        board = new Board();            panConnect.setEnabled( false );            panXmit.setEnabled( true );        } catch( Throwable err ) {            err.printStackTrace();        }    }    /**     * Process a packet from a connection.     * <p/>     * Implements <code>ConnectionHandler</code>.     *     * @param   id - the <code>int</code> ID the connection that     *          received the packet.     * @param   packet - the <code>Packet</code> to be processed.     */    public synchronized void handle( int id, Packet packet ) {        System.out.print( "Connection #" );        System.out.print( id );        System.out.print( ", received a " );        if ( null == packet ) {            System.out.print( "null" );        } else {            switch ( packet.getCommand() ) {            case Packet.COMMAND_SERVER_GREETING:                System.out.print( "COMMAND_SERVER_GREETING" ); break;            case Packet.COMMAND_CLIENT_NAME:                System.out.print( "COMMAND_CLIENT_NAME" ); break;            case Packet.COMMAND_LOCAL_PN:                System.out.print( "COMMAND_LOCAL_PN" ); break;            case Packet.COMMAND_PLAYER_ADD:                System.out.print( "COMMAND_PLAYER_ADD" ); break;            case Packet.COMMAND_PLAYER_REMOVE:                System.out.print( "COMMAND_PLAYER_REMOVE" ); break;            case Packet.COMMAND_PLAYER_UPDATE:                System.out.print( "COMMAND_PLAYER_UPDATE" ); break;            case Packet.COMMAND_PLAYER_READY:                System.out.print( "COMMAND_PLAYER_READY" ); break;            case Packet.COMMAND_CHAT:                System.out.print( "COMMAND_CHAT" ); break;            case Packet.COMMAND_ENTITY_ADD:                System.out.print( "COMMAND_ENTITY_ADD" ); break;            case Packet.COMMAND_ENTITY_REMOVE:                System.out.print( "COMMAND_ENTITY_REMOVE" ); break;            case Packet.COMMAND_ENTITY_MOVE:                System.out.print( "COMMAND_ENTITY_MOVE" ); break;            case Packet.COMMAND_ENTITY_DEPLOY:                System.out.print( "COMMAND_ENTITY_DEPLOY" ); break;            case Packet.COMMAND_ENTITY_ATTACK:                System.out.print( "COMMAND_ENTITY_ATTACK" ); break;            case Packet.COMMAND_ENTITY_UPDATE:                System.out.print( "COMMAND_ENTITY_UPDATE" ); break;            case Packet.COMMAND_ENTITY_MODECHANGE:                System.out.print( "COMMAND_ENTITY_MODECHANGE" ); break;            case Packet.COMMAND_ENTITY_AMMOCHANGE:                System.out.print( "COMMAND_ENTITY_AMMOCHANGE" ); break;            case Packet.COMMAND_ENTITY_VISIBILITY_INDICATOR:                System.out.print( "COMMAND_ENTITY_VISIBILITY_INDICATOR" ); break;            case Packet.COMMAND_CHANGE_HEX:                System.out.print( "COMMAND_CHANGE_HEX" ); break;            case Packet.COMMAND_BLDG_ADD:                System.out.print( "COMMAND_BLDG_ADD" ); break;            case Packet.COMMAND_BLDG_REMOVE:                System.out.print( "COMMAND_BLDG_REMOVE" ); break;            case Packet.COMMAND_BLDG_UPDATE_CF:                System.out.print( "COMMAND_BLDG_UPDATE_CF" ); break;            case Packet.COMMAND_BLDG_COLLAPSE:                System.out.print( "COMMAND_BLDG_COLLAPSE" ); break;            case Packet.COMMAND_PHASE_CHANGE:                System.out.print( "COMMAND_PHASE_CHANGE" ); break;            case Packet.COMMAND_TURN:                System.out.print( "COMMAND_TURN" ); break;            case Packet.COMMAND_ROUND_UPDATE:                System.out.print( "COMMAND_ROUND_UPDATE" ); break;            case Packet.COMMAND_SENDING_BOARD:                System.out.print( "COMMAND_SENDING_BOARD" );                /*                ** Save the board here.                */                Board recvBoard = (Board) packet.getObject(0);                try {                    recvBoard.save( new FileOutputStream("xmit.board") );                } catch ( IOException ioErr ) {                    ioErr.printStackTrace();                }                break;            case Packet.COMMAND_SENDING_ENTITIES:                System.out.print( "COMMAND_SENDING_ENTITIES" ); break;            case Packet.COMMAND_SENDING_PLAYERS:                System.out.print( "COMMAND_SENDING_PLAYERS" ); break;            case Packet.COMMAND_SENDING_TURNS:                System.out.print( "COMMAND_SENDING_TURNS" ); break;            case Packet.COMMAND_SENDING_REPORTS:                System.out.print( "COMMAND_SENDING_REPORTS" ); break;            case Packet.COMMAND_SENDING_GAME_SETTINGS:                System.out.print( "COMMAND_SENDING_GAME_SETTINGS" ); break;            case Packet.COMMAND_SENDING_MAP_SETTINGS:                System.out.print( "COMMAND_SENDING_MAP_SETTINGS" ); break;            case Packet.COMMAND_QUERY_MAP_SETTINGS:                System.out.print( "COMMAND_QUERY_MAP_SETTINGS" ); break;            case Packet.COMMAND_END_OF_GAME:                System.out.print( "COMMAND_END_OF_GAME" ); break;            case Packet.COMMAND_DEPLOY_MINEFIELDS:                System.out.print( "COMMAND_DEPLOY_MINEFIELDS" ); break;            case Packet.COMMAND_REVEAL_MINEFIELD:                System.out.print( "COMMAND_REVEAL_MINEFIELD" ); break;            case Packet.COMMAND_REMOVE_MINEFIELD:                System.out.print( "COMMAND_REMOVE_MINEFIELD" ); break;            case Packet.COMMAND_SENDING_MINEFIELDS:                System.out.print( "COMMAND_SENDING_MINEFIELDS" ); break;            case Packet.COMMAND_REROLL_INITIATIVE:                System.out.print( "COMMAND_REROLL_INITIATIVE" ); break;            case Packet.COMMAND_SET_ARTYAUTOHITHEXES:                System.out.print( "COMMAND_SET_ARTYAUTOHITHEXES" ); break;            default:                System.out.print( "unknown" ); break;            }        }        System.out.println( " packet." );    }    /**     * Called when it is sensed that a connection has terminated.     * <p/>     * Implements <code>ConnectionHandler</code>.     *     * @param   conn - the <code>Connection</code> that has terminated.     */     public synchronized void disconnected( Connection conn ) {        // write something in the log        System.out.println("s: connection " + conn.getId() + " disconnected");                // kill the connection and remove it from any lists it might be on        panXmit.setEnabled( false );        butSend.setEnabled( false );        boardName.setText( "" );        board = null;        conn = null;        panConnect.setEnabled( true );    }    private ConnectionListenerAdapter connectionListener = new ConnectionListenerAdapter() {        /**         * Called when it is sensed that a connection has terminated.         */        public void disconnected(DisconnectedEvent e) {                PacketTool.this.disconnected(e.getConnection());        }        public void packetReceived(PacketReceivedEvent e) {            PacketTool.this.handle(e.getConnection().getId(),e.getPacket());        }    };}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -