j3dserverapp.java

来自「The ElectricTM VLSI Design System is an 」· Java 代码 · 共 119 行

JAVA
119
字号
/* -*- tab-width: 4 -*- * * Electric(tm) VLSI Design System * * File: J3DServerApp.java * Written by Gilda Garreton, Sun Microsystems. * * Copyright (c) 2005 Sun Microsystems and Static Free Software * * Electric(tm) is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * Electric(tm) is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Electric(tm); see the file COPYING.  If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, Mass 02111-1307, USA. */package com.sun.electric.plugins.j3d.utils;import java.io.*;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.DatagramPacket;/** * Support class for 3D viewing. */public class J3DServerApp{    public static void main (String args[])    {        // By default reads from standard input        BufferedReader lineReader = new BufferedReader(new InputStreamReader(System.in));        long timeout = 1;        // Name is given as -name=<filename>        for (int i = 0; i < args.length; i++)        {            if (args[i].startsWith("-h"))            {                System.out.println("J3DServerApp: Usage 'java J3DServerApp [options]'");                System.out.println("\tOptions:");                System.out.println("\t\t-name=<filename>: filename containing the data");                System.out.println("\t\t-time=<time>: waiting time between lines. Default 0");                System.exit(0);            }            if (args[i].startsWith("-time="))            {                String time = args[i].substring(6);                timeout = Long.parseLong(time);            }            if (args[i].startsWith("-name="))            {                String fileName = args[i].substring(6);                try                {                    lineReader = new LineNumberReader(new FileReader(fileName));                } catch (Exception e)                {                    e.printStackTrace();                    lineReader = null;                }            }        }        try        {            DatagramSocket socket = new DatagramSocket(2345);            String localAddress = InetAddress.getLocalHost().getHostName().trim();            int localPort = socket.getLocalPort();            System.out.println(localAddress + ":");            System.out.println("Capacitance Server is listening on port " + localPort + ".");            int bufferLenght = 256;            byte outBuffer[];            byte inBuffer[] = new byte[bufferLenght];            DatagramPacket outDatagram;            DatagramPacket inDatagram = new DatagramPacket(inBuffer, inBuffer.length);            boolean finished = false;            do {                socket.receive(inDatagram);                InetAddress destAddress = inDatagram.getAddress();                String destHost = destAddress.getHostName().trim();                int destPort = inDatagram.getPort();                System.out.println("Received a datagram from " + destHost + " at port" + destPort);                String inData = new String(inDatagram.getData()).trim();                System.out.println("It contained data '" + inData + "'");                if (inData.equalsIgnoreCase("quit")) finished = true;                String outData = lineReader.readLine();                try {lineReader.wait(timeout);} catch (Exception e) {e.printStackTrace();}                System.out.println(outData);                if (outData != null)                {                    outBuffer = outData.getBytes();                    outDatagram = new DatagramPacket(outBuffer, outBuffer.length, destAddress, destPort);                    socket.send(outDatagram);                    System.out.println("Sent '" + outData + "' to " + destHost + " at port " + destPort);                }            } while (!finished);        } catch (IOException ex)        {            ex.printStackTrace();        }        finally        {            System.out.println("Quitting");        }    }}

⌨️ 快捷键说明

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