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


Java SelectableChannel.isOpen方法代码示例

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


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

示例1: handleIOException

import java.nio.channels.SelectableChannel; //导入方法依赖的package包/类
private void handleIOException( SelectionKey key, WebSocket conn, IOException ex ) {
	// onWebsocketError( conn, ex );// conn may be null here
	if( conn != null ) {
		conn.closeConnection( CloseFrame.ABNORMAL_CLOSE, ex.getMessage() );
	} else if( key != null ) {
		SelectableChannel channel = key.channel();
		if( channel != null && channel.isOpen() ) { // this could be the case if the IOException ex is a SSLException
			try {
				channel.close();
			} catch ( IOException e ) {
				// there is nothing that must be done here
			}
			if( WebSocketImpl.DEBUG )
				System.out.println( "Connection closed because of" + ex );
		}
	}
}
 
开发者ID:LDLN,项目名称:Responder-Android,代码行数:18,代码来源:WebSocketServer.java

示例2: implClose

import java.nio.channels.SelectableChannel; //导入方法依赖的package包/类
protected void implClose() throws IOException
{
    if (channelArray != null)
    {
        // prevent further wakeup
        synchronized (interruptLock) {
            interruptTriggered = true;
        }
        wakeupPipe.sink().close();
        wakeupPipe.source().close();
        for (int i = 0; i < channelArray.get_Count(); i++)
        { // Deregister channels
            SelectionKeyImpl ski = (SelectionKeyImpl)channelArray.get_Item(i);
            deregister(ski);
            SelectableChannel selch = ski.channel();
            if (!selch.isOpen() && !selch.isRegistered())
                ((SelChImpl)selch).kill();
        }
        selectedKeys = null;
        channelArray = null;
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:23,代码来源:DotNetSelectorImpl.java

示例3: handleIOException

import java.nio.channels.SelectableChannel; //导入方法依赖的package包/类
private void handleIOException(SelectionKey key, WebSocket conn, IOException ex) {
    // onWebsocketError( conn, ex );// conn may be null here
    if (conn != null) {
        conn.closeConnection(CloseFrame.ABNORMAL_CLOSE, ex.getMessage());
    } else if (key != null) {
        SelectableChannel channel = key.channel();
        if (channel != null && channel.isOpen()) { // this could be the case if the IOException ex is a SSLException
            try {
                channel.close();
            } catch (IOException e) {
                // there is nothing that must be done here
            }
            if (WebSocketImpl.DEBUG) {
                System.out.println("Connection closed because of" + ex);
            }
        }
    }
}
 
开发者ID:GloriousEggroll,项目名称:quorrabot,代码行数:19,代码来源:WebSocketServer.java

示例4: handleIOException

import java.nio.channels.SelectableChannel; //导入方法依赖的package包/类
private void handleIOException(SelectionKey key, WebSocket conn, IOException ex) {
    onWebsocketError(conn, ex);
    if (conn != null) {
        conn.closeConnection(CloseFrame.ABNORMAL_CLOSE, ex.getMessage());
    } else if (key != null) {
        SelectableChannel channel = key.channel();
        if (channel != null && channel.isOpen()) {
            try {
                channel.close();
            } catch (IOException e) {
            }
            if (WebSocketImpl.DEBUG) {
                System.out.println("Connection closed because of" + ex);
            }
        }
    }
}
 
开发者ID:JackChan1999,项目名称:boohee_v5.6,代码行数:18,代码来源:WebSocketServer.java

示例5: implClose

import java.nio.channels.SelectableChannel; //导入方法依赖的package包/类
protected void implClose() throws IOException {
    synchronized (closeLock) {
        if (channelArray != null) {
            if (pollWrapper != null) {
                // prevent further wakeup
                synchronized (interruptLock) {
                    interruptTriggered = true;
                }
                wakeupPipe.sink().close();
                wakeupPipe.source().close();
                for(int i = 1; i < totalChannels; i++) { // Deregister channels
                    if (i % MAX_SELECTABLE_FDS != 0) { // skip wakeupEvent
                        deregister(channelArray[i]);
                        SelectableChannel selch = channelArray[i].channel();
                        if (!selch.isOpen() && !selch.isRegistered())
                            ((SelChImpl)selch).kill();
                    }
                }
                pollWrapper.free();
                pollWrapper = null;
                selectedKeys = null;
                channelArray = null;
                // Make all remaining helper threads exit
                for (SelectThread t: threads)
                     t.makeZombie();
                startLock.startThreads();
            }
        }
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:31,代码来源:WindowsSelectorImpl.java

示例6: implDereg

import java.nio.channels.SelectableChannel; //导入方法依赖的package包/类
protected void implDereg(SelectionKeyImpl ski) throws IOException{
    int i = ski.getIndex();
    assert (i >= 0);
    synchronized (closeLock) {
        if (i != totalChannels - 1) {
            // Copy end one over it
            SelectionKeyImpl endChannel = channelArray[totalChannels-1];
            channelArray[i] = endChannel;
            endChannel.setIndex(i);
            pollWrapper.replaceEntry(pollWrapper, totalChannels - 1,
                                                            pollWrapper, i);
        }
        ski.setIndex(-1);
    }
    channelArray[totalChannels - 1] = null;
    totalChannels--;
    if ( totalChannels != 1 && totalChannels % MAX_SELECTABLE_FDS == 1) {
        totalChannels--;
        threadsCount--; // The last thread has become redundant.
    }
    fdMap.remove(ski); // Remove the key from fdMap, keys and selectedKeys
    keys.remove(ski);
    selectedKeys.remove(ski);
    deregister(ski);
    SelectableChannel selch = ski.channel();
    if (!selch.isOpen() && !selch.isRegistered())
        ((SelChImpl)selch).kill();
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:29,代码来源:WindowsSelectorImpl.java

示例7: implDereg

import java.nio.channels.SelectableChannel; //导入方法依赖的package包/类
protected void implDereg(SelectionKeyImpl ski) throws IOException
{
    channelArray.Remove(ski);
    fdMap.remove(ski.getSocket());
    keys.remove(ski);
    selectedKeys.remove(ski);
    deregister(ski);
    SelectableChannel selch = ski.channel();
    if (!selch.isOpen() && !selch.isRegistered())
    {
        ((SelChImpl)selch).kill();
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:14,代码来源:DotNetSelectorImpl.java


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