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

📄 protocol.java

📁 已经移植好的java虚拟机
💻 JAVA
字号:
/* *  Copyright (c) 1999 Sun Microsystems, Inc., 901 San Antonio Road, *  Palo Alto, CA 94303, U.S.A.  All Rights Reserved. * *  Sun Microsystems, Inc. has intellectual property rights relating *  to the technology embodied in this software.  In particular, and *  without limitation, these intellectual property rights may include *  one or more U.S. patents, foreign patents, or pending *  applications.  Sun, Sun Microsystems, the Sun logo, Java, KJava, *  and all Sun-based and Java-based marks are trademarks or *  registered trademarks of Sun Microsystems, Inc.  in the United *  States and other countries. * *  This software is distributed under licenses restricting its use, *  copying, distribution, and decompilation.  No part of this *  software may be reproduced in any form by any means without prior *  written authorization of Sun and its licensors, if any. * *  FEDERAL ACQUISITIONS:  Commercial Software -- Government Users *  Subject to Standard License Terms and Conditions */package com.sun.cldc.io.j2se.socket;import java.io.*;import java.net.*;import javax.microedition.io.*;import com.sun.cldc.io.j2se.*;import com.sun.cldc.io.*;/** * GenericStreamConnection to the J2SE socket API. * * @author  Nik Shaylor * @version 1.0 10/08/99 */public class Protocol extends ConnectionBase implements StreamConnection {    /** Socket object */    Socket socket;    /** Open count */    int opens = 0;    /**     * Open the connection     */    public void open(String name, int mode, boolean timeouts) throws IOException {        throw new RuntimeException("Should not be called");    }    /**     * Open the connection     * @param name the target for the connection     * @param writeable a flag that is true if the caller expects to write to the     *        connection.     * @param timeouts A flag to indicate that the called wants timeout exceptions     * <p>     * The name string for this protocol should be:     * "<name or IP number>:<port number>     */    public Connection openPrim(String name, int mode, boolean timeouts) throws IOException {        if(name.charAt(0) != '/' || name.charAt(1) != '/') {            throw new IllegalArgumentException("Protocol must start with \"//\" "+name);        }        name = name.substring(2);        try {            /* Host name or IP number */            String nameOrIP;            /* Port number */            int port;            /* Look for the : */            int colon = name.indexOf(':');            if(colon == -1) {                throw new IllegalArgumentException("Bad protocol specification in "+name);            }            /* Strip off the protocol name */            nameOrIP = name.substring(0, colon);            if(nameOrIP.length() == 0) {                /*                 * If the open string is "socket://:nnnn" then we regard this as                 * "serversocket://:nnnn"                 */                com.sun.cldc.io.j2se.serversocket.Protocol con =                    new com.sun.cldc.io.j2se.serversocket.Protocol();                con.open("//"+name, mode, timeouts);                return con;            }            /* Get the port number */            port = Integer.parseInt(name.substring(colon+1));            /* Open the socket */            socket = new Socket(nameOrIP, port);            opens++;            return this;        } catch(NumberFormatException x) {            throw new IllegalArgumentException("Invalid port number in "+name);        }    }    /**     * Open the connection     * @param socket an already formed socket     * <p>     * This function is only used by com.sun.kjava.system.palm.protocol.socketserver;     */    public void open(Socket socket) throws IOException {        this.socket = socket;    }    /**     * Returns an input stream for this socket.     *     * @return     an input stream for reading bytes from this socket.     * @exception  IOException  if an I/O error occurs when creating the     *                          input stream.     */    public InputStream openInputStream() throws IOException {        InputStream is = new UniversalFilterInputStream(this, socket.getInputStream());        opens++;        return is;    }    /**     * Returns an output stream for this socket.     *     * @return     an output stream for writing bytes to this socket.     * @exception  IOException  if an I/O error occurs when creating the     *                          output stream.     */    public OutputStream openOutputStream() throws IOException {        OutputStream os = new UniversalFilterOutputStream(this, socket.getOutputStream());        opens++;        return os;    }    /**     * Close the connection.     *     * @exception  IOException  if an I/O error occurs when closing the     *                          connection.     */    public void close() throws IOException {        if(--opens == 0) {            socket.close();        }    }}

⌨️ 快捷键说明

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