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

📄 linkserver.java

📁 openmap java写的开源数字地图程序. 用applet实现,可以像google map 那样放大缩小地图.
💻 JAVA
字号:
// **********************************************************************// // <copyright>// //  BBN Technologies//  10 Moulton Street//  Cambridge, MA 02138//  (617) 873-8000// //  Copyright (C) BBNT Solutions LLC. All rights reserved.// // </copyright>// **********************************************************************// // $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/layer/link/LinkServer.java,v $// $RCSfile: LinkServer.java,v $// $Revision: 1.4.2.2 $// $Date: 2005/08/09 18:10:44 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.layer.link;import java.io.IOException;import java.net.Socket;/** * The Link Server is the object communicating with the LinkLayer. It * is launched within its own thread to handle a specific client. If * the server is accessing a database or an object that many * LinkServers may be contacting, You'll need to ensure some amount of * thread safety for the data if the data is being modified by the * LinkServer. */public class LinkServer extends Thread implements LinkPropertiesConstants {    /** The Link to use to talk to the client. */    protected Link link;    /**     * Constructor used by the LinkServerStarter in using this class     * as a LinkServerFactory.     */    public LinkServer() {}    /**     * Create child thread that will handle the client.     *      * @param s the socket to communicate over.     */    public LinkServer(Socket s) {        try {            link = new Link(s);        } catch (java.io.IOException ioe) {            System.err.println("LinkServer: IOException while creating child server:");            System.err.println(ioe);        }    }    /** From the Runnable interface. The thread starts here... */    public void run() {        try {            handleClient();        } catch (IOException ioe) {            link.cleanUp();            link = null;            if (com.bbn.openmap.util.Debug.debugging("link")) {                System.err.println(ioe);            }            com.bbn.openmap.util.Debug.output("LinkServer: Client disconnected");            System.gc();        }    }    /**     * handleClient is a method that listens to the link to a client,     * and responds to requests that are made.     *      * @throws IOException     */    public void handleClient() throws IOException {        boolean validQuery;        while (true) {            link.readAndParse();            validQuery = false;            // For instance, you could do something like this...            //          LinkMapRequest graphicsQuery = link.getMapRequest();            //          LinkActionRequest gestureQuery =            // link.getActionRequest();            //          if (graphicsQuery != null) {            //              getRectangle(graphicsQuery, link);            //              validQuery = true;            //          }            //          if (gestureQuery != null) {            //              handleGesture(gestureQuery, link);            //              validQuery = true;            //          }            if (!validQuery) {                huh(link);            }        }    }    /**     * If a request is not handled, or not understood, reply with     * this.     *      * @throws IOException     */    public void huh(Link link) throws IOException {        link.start(Link.HUH_HEADER);        link.end(Link.END_TOTAL);    }    /**     * An example of how to handle GraphicsLinkQueries.     *      * @param query the GraphicsLinkQuery, so you can get more     *        information about the parameters of the map screen of     *        the client.     * @param link the link to communicate the response back to the     *        client.     * @throws IOException     */    public void getRectangle(LinkMapRequest query, Link link)            throws IOException {        LinkGraphicList lgl = new LinkGraphicList(link, new LinkProperties());        // Send nothing        lgl.end(Link.END_SECTION);        int des = LinkUtil.setMask(0, LinkActionRequest.MOUSE_CLICKED_MASK);        new LinkActionRequest(link, des, Link.END_TOTAL);    }    /**     * An example of how to handle LinkActionRequest.     *      * @param lar the LinkActionRequest, so you can get more     *        information about the parameters of the gesture frome     *        the client.     * @param link the link to communicate the response back to the     *        client.     * @throws IOException     */    public void handleGesture(LinkActionRequest lar, Link link)            throws IOException {        LinkProperties properties = new LinkProperties();        properties.setProperty(LPC_INFO, ("Mouse Clicked at: x = " + lar.getX()                + ", y = " + lar.getY()));        LinkActionList lal = new LinkActionList(link, properties);//        int descriptor = lar.getDescriptor();        String gid = lar.getProperties().getProperty(LPC_GRAPHICID);        if (gid == null) {            System.out.println("Deselecting graphics");            lal.deselectGraphics();        } else {            System.out.println("Selecting graphic");            lal.modifyGraphic(LinkActionList.MODIFY_SELECT_GRAPHIC_MASK,                    lar.getProperties());        }        lal.end(Link.END_TOTAL);    }}

⌨️ 快捷键说明

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