當前位置: 首頁>>代碼示例>>Java>>正文


Java Channel類代碼示例

本文整理匯總了Java中java.nio.channels.Channel的典型用法代碼示例。如果您正苦於以下問題:Java Channel類的具體用法?Java Channel怎麽用?Java Channel使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


Channel類屬於java.nio.channels包,在下文中一共展示了Channel類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: handleException

import java.nio.channels.Channel; //導入依賴的package包/類
@Override
public void handleException(Channel channel, IOException exception) {
    IoUtils.safeClose(channel);
    if (exchange.isResponseStarted()) {
        IoUtils.safeClose(clientConnection);
        UndertowLogger.REQUEST_IO_LOGGER.debug("Exception reading from target server", exception);
        if (!exchange.isResponseStarted()) {
            exchange.setResponseCode(StatusCodes.INTERNAL_SERVER_ERROR);
            exchange.endExchange();
        } else {
            IoUtils.safeClose(exchange.getConnection());
        }
    } else {
        exchange.setResponseCode(StatusCodes.INTERNAL_SERVER_ERROR);
        exchange.endExchange();
    }
}
 
開發者ID:lamsfoundation,項目名稱:lams,代碼行數:18,代碼來源:ProxyHandler.java

示例2: getChannel

import java.nio.channels.Channel; //導入依賴的package包/類
public static synchronized Channel getChannel() throws IOException {
    if (devnull < 0) {
        devnull = open0("/dev/null", O_RDWR);
    }

    // If we don't have the channel try to create it
    if (!haveChannel) {
        channel = createChannel();
        haveChannel = true;
    }

    // if there is a channel then do the security check before
    // returning it.
    if (channel != null) {
        checkAccess(channel);
    }
    return channel;
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:19,代碼來源:InheritedChannel.java

示例3: inheritedChannel

import java.nio.channels.Channel; //導入依賴的package包/類
public synchronized Channel inheritedChannel() throws IOException {
    System.err.println("SP.inheritedChannel");
    if (channel == null) {
        channel = SocketChannel.open();
        Socket socket = channel.socket();
        System.err.println("socket = " + socket);

        /*
         * Notify test that inherited channel was created.
         */
        try {
            System.err.println("notify test...");
            Registry registry =
                LocateRegistry.getRegistry(TestLibrary.INHERITEDCHANNELNOTSERVERSOCKET_REGISTRY_PORT);
            Callback obj = (Callback) registry.lookup("Callback");
            obj.notifyTest();
        } catch (NotBoundException nbe) {
            throw (IOException)
                new IOException("callback object not bound").
                    initCause(nbe);
        }
    }
    return channel;
}
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:25,代碼來源:InheritedChannelNotServerSocket.java

示例4: main

import java.nio.channels.Channel; //導入依賴的package包/類
public static void main(String args[]) {

        // test the assertion that SelectorProvider.inheritedChannel()
        // and System.inheritedChannel return null when standard input
        // is not connected to a socket

        Channel c1, c2;
        try {
            c1 = SelectorProvider.provider().inheritedChannel();
            c2 = System.inheritedChannel();
        } catch (IOException ioe) {
            throw new RuntimeException("Unexpected IOException: " + ioe);
        }
        if (c1 != null || c2 != null) {
            throw new RuntimeException("Channel returned - unexpected");
        }
    }
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:18,代碼來源:NullTest.java

示例5: releaseFileLock

import java.nio.channels.Channel; //導入依賴的package包/類
public void releaseFileLock() {

        if (fileLock != null) {
            if (log.isTraceEnable()) {
                log.info(this, "Releasing the file lock of " + this.filePath.getFileName());
            }

            Channel fc = fileLock.acquiredBy();

            try {
                fileLock.release();
                fileLock = null;

                if (fc != null) {
                    fc.close();
                }
            }
            catch (IOException e) {
            }
        }
    }
 
開發者ID:uavorg,項目名稱:uavstack,代碼行數:22,代碼來源:UpgradeProcessLock.java

示例6: inheritedChannel

import java.nio.channels.Channel; //導入依賴的package包/類
public synchronized Channel inheritedChannel() throws IOException {
    System.err.println("SP.inheritedChannel");
    if (channel == null) {
        channel = SocketChannel.open();
        Socket socket = channel.socket();
        System.err.println("socket = " + socket);

        /*
         * Notify test that inherited channel was created.
         */
        try {
            System.err.println("notify test...");
            int registryPort = Integer.getInteger(
                    "test.java.rmi.rmidViaInheritedChannel.registry.port", 0);
            Registry registry = LocateRegistry.getRegistry(registryPort);
            Callback obj = (Callback) registry.lookup("Callback");
            obj.notifyTest();
        } catch (NotBoundException nbe) {
            throw (IOException)
                new IOException("callback object not bound").
                    initCause(nbe);
        }
    }
    return channel;
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:26,代碼來源:InheritedChannelNotServerSocket.java

示例7: completed

import java.nio.channels.Channel; //導入依賴的package包/類
@Override
public void completed(final ClientConnection connection) {
    final ServerConnection serverConnection = exchange.getConnection();
    //we attach to the connection so it can be re-used
    serverConnection.putAttachment(clientAttachmentKey, connection);
    serverConnection.addCloseListener(serverConnection1 -> IoUtils.safeClose(connection));
    connection.getCloseSetter().set((ChannelListener<Channel>) channel -> serverConnection.removeAttachment(clientAttachmentKey));

    exchange.setRelativePath("/");
    Realm realm = realmCache.matches(exchange.getRequestPath());
    Application application = realmCache.getApplication(realm);
    String path = exchange.getRequestURI();
    if (path.startsWith(application.getVirtualPath())) {
        String passTo = calculatePathTo(path, application);
        exchange.setRequestPath(passTo);
        exchange.setRequestURI(passTo);
    }
    callback.completed(exchange, new ProxyConnection(connection, "/"));
}
 
開發者ID:kawasima,項目名稱:bouncr,代碼行數:20,代碼來源:MultiAppProxyClient.java

示例8: fsync

import java.nio.channels.Channel; //導入依賴的package包/類
/**
 * Internal fsync implementation.
 */
private static void fsync(PyObject fd, boolean metadata) {
    RawIOBase rawIO = FileDescriptors.get(fd);
    rawIO.checkClosed();
    Channel channel = rawIO.getChannel();
    if (!(channel instanceof FileChannel)) {
        throw Py.OSError(Errno.EINVAL);
    }

    try {
        ((FileChannel)channel).force(metadata);
    } catch (ClosedChannelException cce) {
        // In the rare case it's closed but the rawIO wasn't
        throw Py.ValueError("I/O operation on closed file");
    } catch (IOException ioe) {
        throw Py.OSError(ioe);
    }
}
 
開發者ID:RunasSudo,項目名稱:PyAndroid,代碼行數:21,代碼來源:PosixModule.java

示例9: doClose

import java.nio.channels.Channel; //導入依賴的package包/類
private void doClose() {
    connLock.lock();
    try {
        Channel channel = this.channel;
        if (channel != null) {
            if (channel.isOpen()) {
                IOUtils.close(channel);
                listener.onDisConnected(client);
                logger.w("channel closed !!!");
            }
            this.channel = null;
        }
    } finally {
        state.set(disconnected);
        connLock.unlock();
    }
}
 
開發者ID:mpusher,項目名稱:mpush-client-java,代碼行數:18,代碼來源:TcpConnection.java

示例10: startListening

import java.nio.channels.Channel; //導入依賴的package包/類
public void startListening() {
	while (isAlive) {
		Channel channel;
		channel = network.choosingConnection(); // first stop here!
		if (channel instanceof ServerSocketChannel) {
			//System.out.println("TCP received!");
			// TODO: Read TCP received message, convert to enum and reply in another class.
			
			TcpReceiver tcpReceiver = new TcpReceiver(channel);
			new Thread(tcpReceiver).start();
		}
		else if (channel instanceof DatagramChannel) {
			System.out.println("UDP received!");
			// TODO: Read UDP received message, convert to enum and reply in another class.
		} else {
			System.out.println("meh");
		}
	}
}
 
開發者ID:thiloilg,項目名稱:video-streaming,代碼行數:20,代碼來源:VideoStreamServer.java

示例11: choosingConnection

import java.nio.channels.Channel; //導入依賴的package包/類
@Override
public Channel choosingConnection() {
	try {
		selector.select(); // stop here!
		//System.out.println("Selector chose something!");
		Set<SelectionKey> keys = selector.selectedKeys();
		for (Iterator<SelectionKey> i = keys.iterator(); i.hasNext();) {
            SelectionKey key = (SelectionKey) i.next();
            i.remove();
            Channel c = (Channel) key.channel();
            if (key.isAcceptable() && c == tcpChannel)
            	return tcpChannel;
            else if (key.isReadable() && c == udpChannel) 
            	return udpChannel;
		}

	} catch (IOException e) {
		e.printStackTrace();
	}
	return null;
}
 
開發者ID:thiloilg,項目名稱:video-streaming,代碼行數:22,代碼來源:Network.java

示例12: close

import java.nio.channels.Channel; //導入依賴的package包/類
/**
 * Closes a channel. Channel can be null and any IOException's will be swallowed.
 *
 * @param channel The stream to close.
 */
public static void close( Channel channel )
{
    if ( channel == null )
    {
        return;
    }

    try
    {
        channel.close();
    }
    catch ( IOException ex )
    {
        // ignore
    }
}
 
開發者ID:ctripcorp,項目名稱:x-pipe,代碼行數:22,代碼來源:IOUtil.java

示例13: doReleaseExclusiveReadLock

import java.nio.channels.Channel; //導入依賴的package包/類
@Override
protected void doReleaseExclusiveReadLock(GenericFileOperations<File> operations,
                                          GenericFile<File> file, Exchange exchange) throws Exception {
    // must call super
    super.doReleaseExclusiveReadLock(operations, file, exchange);

    FileLock lock = exchange.getProperty(asReadLockKey(file, Exchange.FILE_LOCK_EXCLUSIVE_LOCK), FileLock.class);
    RandomAccessFile rac = exchange.getProperty(asReadLockKey(file, Exchange.FILE_LOCK_EXCLUSIVE_LOCK), RandomAccessFile.class);

    String target = file.getFileName();
    if (lock != null) {
        Channel channel = lock.acquiredBy();
        try {
            lock.release();
        } finally {
            // close channel as well
            IOHelper.close(channel, "while releasing exclusive read lock for file: " + target, LOG);
            IOHelper.close(rac, "while releasing exclusive read lock for file: " + target, LOG);
        }
    }
}
 
開發者ID:HydAu,項目名稱:Camel,代碼行數:22,代碼來源:FileLockExclusiveReadLockStrategy.java

示例14: closeHard

import java.nio.channels.Channel; //導入依賴的package包/類
/**
 * This should be followed by closing a selector.
 *
 * @param channel the channel to close.
 */
public static void closeHard(final Channel channel) {

   if (channel != null) {
      try {

         // Close socket
         if (channel instanceof SocketChannel) {

            closeHard(((SocketChannel) channel).socket());
         }

         // Close channel
         channel.close();
      } catch (final Exception e) {
         ignoreException(e, "closing hard");
      }
   }
}
 
開發者ID:cacheonix,項目名稱:cacheonix-core,代碼行數:24,代碼來源:IOUtils.java

示例15: test

import java.nio.channels.Channel; //導入依賴的package包/類
@Test
public void test(){
    ByteBuffer byteBuffer = ByteBuffer.allocate(10);
    byteBuffer.put((byte) 'a');
    byteBuffer.put((byte) 'b');
    byteBuffer.put((byte) 'c');

    Channel channel = Channels.newChannel(new InputStream() {
        @Override
        public int read() throws IOException {
            return 0;
        }
    });

    CharBuffer charBuffer = CharBuffer.allocate(10);
    charBuffer.put('a');
    charBuffer.put('b');
    charBuffer.put('c');

    System.out.println(charBuffer.get());
}
 
開發者ID:Jdoing,項目名稱:example,代碼行數:22,代碼來源:BufferTest.java


注:本文中的java.nio.channels.Channel類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。