当前位置: 首页>>代码示例>>Java>>正文


Java Connection.close方法代码示例

本文整理汇总了Java中sun.rmi.transport.Connection.close方法的典型用法代码示例。如果您正苦于以下问题:Java Connection.close方法的具体用法?Java Connection.close怎么用?Java Connection.close使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在sun.rmi.transport.Connection的用法示例。


在下文中一共展示了Connection.close方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: shedCache

import sun.rmi.transport.Connection; //导入方法依赖的package包/类
/**
 * Closes all the connections in the cache, whether timed out or not.
 */
public void shedCache() {
    // Build a list of connections, to avoid holding the freeList
    // lock during (potentially long-running) close() calls.
    Connection[] conn;
    synchronized (freeList) {
        conn = freeList.toArray(new Connection[freeList.size()]);
        freeList.clear();
    }

    // Close all the connections that were free
    for (int i = conn.length; --i >= 0; ) {
        Connection c = conn[i];
        conn[i] = null; // help gc
        try {
            c.close();
        } catch (java.io.IOException e) {
            // eat exception
        }
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:24,代码来源:TCPChannel.java

示例2: handleMessages

import sun.rmi.transport.Connection; //导入方法依赖的package包/类
/**
 * handleMessages decodes transport operations and handles messages
 * appropriately.  If an exception occurs during message handling,
 * the socket is closed.
 */
void handleMessages(Connection conn, boolean persistent) {
    int port = getEndpoint().getPort();

    try {
        DataInputStream in = new DataInputStream(conn.getInputStream());
        do {
            int op = in.read();     // transport op
            if (op == -1) {
                if (tcpLog.isLoggable(Log.BRIEF)) {
                    tcpLog.log(Log.BRIEF, "(port " +
                        port + ") connection closed");
                }
                break;
            }

            if (tcpLog.isLoggable(Log.BRIEF)) {
                tcpLog.log(Log.BRIEF, "(port " + port +
                    ") op = " + op);
            }

            switch (op) {
            case TransportConstants.Call:
                // service incoming RMI call
                RemoteCall call = new StreamRemoteCall(conn);
                if (serviceCall(call) == false)
                    return;
                break;

            case TransportConstants.Ping:
                // send ack for ping
                DataOutputStream out =
                    new DataOutputStream(conn.getOutputStream());
                out.writeByte(TransportConstants.PingAck);
                conn.releaseOutputStream();
                break;

            case TransportConstants.DGCAck:
                DGCAckHandler.received(UID.read(in));
                break;

            default:
                throw new IOException("unknown transport op " + op);
            }
        } while (persistent);

    } catch (IOException e) {
        // exception during processing causes connection to close (below)
        if (tcpLog.isLoggable(Log.BRIEF)) {
            tcpLog.log(Log.BRIEF, "(port " + port +
                ") exception: ", e);
        }
    } finally {
        try {
            conn.close();
        } catch (IOException ex) {
            // eat exception
        }
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:65,代码来源:TCPTransport.java

示例3: free

import sun.rmi.transport.Connection; //导入方法依赖的package包/类
/**
 * Free the connection generated by this channel.
 * @param conn The connection
 * @param reuse If true, the connection is in a state in which it
 *        can be reused for another method call.
 */
public void free(Connection conn, boolean reuse) {
    if (conn == null) return;

    if (reuse && conn.isReusable()) {
        long lastuse = System.currentTimeMillis();
        TCPConnection tcpConnection = (TCPConnection) conn;

        TCPTransport.tcpLog.log(Log.BRIEF, "reuse connection");

        /*
         * Cache connection; if reaper task for expired
         * connections isn't scheduled, then schedule it.
         */
        synchronized (freeList) {
            freeList.add(tcpConnection);
            if (reaper == null) {
                TCPTransport.tcpLog.log(Log.BRIEF, "create reaper");

                reaper = scheduler.scheduleWithFixedDelay(
                    new Runnable() {
                        public void run() {
                            TCPTransport.tcpLog.log(Log.VERBOSE,
                                                    "wake up");
                            freeCachedConnections();
                        }
                    }, idleTimeout, idleTimeout, TimeUnit.MILLISECONDS);
            }
        }

        tcpConnection.setLastUseTime(lastuse);
        tcpConnection.setExpiration(lastuse + idleTimeout);
    } else {
        TCPTransport.tcpLog.log(Log.BRIEF, "close connection");

        try {
            conn.close();
        } catch (IOException ignored) {
        }
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:47,代码来源:TCPChannel.java


注:本文中的sun.rmi.transport.Connection.close方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。