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


Java DatagramChannel.close方法代碼示例

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


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

示例1: main

import java.nio.channels.DatagramChannel; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException
{
    ByteBuffer data = ByteBuffer.wrap("TESTING DATA".getBytes());
    DatagramChannel dgChannel = DatagramChannel.open();

    for(int i = 0; i < targets.length; i++){
        data.rewind();
        SocketAddress sa = new InetSocketAddress(targets[i], port);
        System.out.println("-------------\nDG_Sending data:" +
                           "\n    remaining:" + data.remaining() +
                           "\n     position:" + data.position() +
                           "\n        limit:" + data.limit() +
                           "\n     capacity:" + data.capacity() +
                           " bytes on DG channel to " + sa);
        try {
            int n = dgChannel.send(data, sa);
            System.out.println("DG_Sent " + n + " bytes");
        } catch (IOException e) {
            //This regression test is to check vm crash only, so ioe is OK.
            e.printStackTrace();
        }
    }
    dgChannel.close();
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:25,代碼來源:UseDGWithIPv6.java

示例2: newHandle

import java.nio.channels.DatagramChannel; //導入方法依賴的package包/類
@Override
protected DatagramChannel newHandle(SocketAddress localAddress) throws Exception {
    DatagramChannel ch = DatagramChannel.open();

    try {
        if (localAddress != null) {
            ch.socket().bind(localAddress);
        }

        return ch;
    } catch (Exception e) {
        // If we got an exception while binding the datagram,
        // we have to close it otherwise we will loose an handle
        ch.close();
        throw e;
    }
}
 
開發者ID:eclipse,項目名稱:neoscada,代碼行數:18,代碼來源:NioDatagramConnector.java

示例3: launchWithDatagramChannel

import java.nio.channels.DatagramChannel; //導入方法依賴的package包/類
public static DatagramChannel launchWithDatagramChannel(String className, String options[], String args[])
    throws IOException
{
    DatagramChannel dc = DatagramChannel.open();
    dc.socket().bind(new InetSocketAddress(0));

    int port = dc.socket().getLocalPort();
    launch(className, options, args, Util.getFD(dc));
    dc.close();

    dc = DatagramChannel.open();
    InetAddress address = InetAddress.getLocalHost();
    if (address.isLoopbackAddress()) {
        address = InetAddress.getLoopbackAddress();
    }
    InetSocketAddress isa = new InetSocketAddress(address, port);

    dc.connect(isa);
    return dc;
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:21,代碼來源:Launcher.java

示例4: UDPEchoTest

import java.nio.channels.DatagramChannel; //導入方法依賴的package包/類
private static void UDPEchoTest() throws IOException {
    DatagramChannel dc = Launcher.launchWithDatagramChannel(ECHO_SERVICE, null);

    String msg = "I was out saving the galaxy when your grandfather was in diapers";

    ByteBuffer bb = ByteBuffer.wrap(msg.getBytes("UTF-8"));
    dc.write(bb);

    // and receive the echo
    byte b[] = new byte[msg.length() + 100];
    DatagramPacket pkt2 = new DatagramPacket(b, b.length);
    dc.socket().setSoTimeout(5000);
    dc.socket().receive(pkt2);

    if (pkt2.getLength() != msg.length()) {
        throw new RuntimeException("Received packet of incorrect length");
    }

    dc.close();
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:21,代碼來源:EchoTest.java

示例5: close

import java.nio.channels.DatagramChannel; //導入方法依賴的package包/類
@Override
protected void close(DatagramChannel handle) throws Exception {
    SelectionKey key = handle.keyFor(selector);

    if (key != null) {
        key.cancel();
    }

    handle.disconnect();
    handle.close();
}
 
開發者ID:eclipse,項目名稱:neoscada,代碼行數:12,代碼來源:NioDatagramAcceptor.java

示例6: close

import java.nio.channels.DatagramChannel; //導入方法依賴的package包/類
private void close(DatagramChannel udp) {
    if (udp != null) {
        try {
            udp.close();
        } catch (IOException e) {
            // No-op.
        }
    }
}
 
開發者ID:hekate-io,項目名稱:hekate,代碼行數:10,代碼來源:StatsdMetricsPublisher.java

示例7: closeChannel

import java.nio.channels.DatagramChannel; //導入方法依賴的package包/類
private void closeChannel(DatagramChannel channel)
{
    try
    {
        channel.close();
    }
    catch (IOException e)
    {
        // Ignore
    }
}
 
開發者ID:x-falcon,項目名稱:Virtual-Hosts,代碼行數:12,代碼來源:UDPOutput.java

示例8: wakeupWhenBound

import java.nio.channels.DatagramChannel; //導入方法依賴的package包/類
static void wakeupWhenBound(final DatagramChannel dc) {
    Runnable wakeupTask = new Runnable() {
        public void run() {
            try {
                // poll for local address
                InetSocketAddress local;
                do {
                    Thread.sleep(50);
                    local = (InetSocketAddress)dc.getLocalAddress();
                } while (local == null);

                // send message to channel to wakeup receiver
                DatagramChannel sender = DatagramChannel.open();
                try {
                    ByteBuffer bb = ByteBuffer.wrap("hello".getBytes());
                    InetAddress lh = InetAddress.getLocalHost();
                    SocketAddress target =
                        new InetSocketAddress(lh, local.getPort());
                    sender.send(bb, target);
                } finally {
                    sender.close();
                }

            } catch (Exception x) {
                x.printStackTrace();
            }
        }};
    new Thread(wakeupTask).start();
}
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:30,代碼來源:NotBound.java

示例9: main

import java.nio.channels.DatagramChannel; //導入方法依賴的package包/類
public static void main(String[] args) throws Exception {
    InetAddress lh = InetAddress.getLocalHost();
    SocketAddress remote = new InetSocketAddress(lh, 1234);

    DatagramSocket ds = null;
    DatagramChannel dc = null;
    try {

        ds = new DatagramSocket();
        dc = DatagramChannel.open().bind(new InetSocketAddress(0));
        check(ds, dc);

        ds.connect(remote);
        dc.connect(remote);
        check(ds, dc);

        ds.disconnect();
        dc.disconnect();
        check(ds, dc);

        // repeat tests using socket adapter
        ds.connect(remote);
        dc.socket().connect(remote);
        check(ds, dc);

        ds.disconnect();
        dc.socket().disconnect();
        check(ds, dc);

   } finally {
        if (ds != null) ds.close();
        if (dc != null) dc.close();
   }
}
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:35,代碼來源:ChangingAddress.java

示例10: doIt

import java.nio.channels.DatagramChannel; //導入方法依賴的package包/類
private static void doIt(DatagramChannel dc) throws IOException {
    ByteBuffer bb = ByteBuffer.allocate(1024);
    SocketAddress sa = dc.receive(bb);
    bb.flip();
    dc.send(bb, sa);
    dc.close();
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:8,代碼來源:EchoService.java

示例11: test

import java.nio.channels.DatagramChannel; //導入方法依賴的package包/類
private static void test() throws Exception {
    DatagramChannel dc = DatagramChannel.open();
    InetAddress localHost = InetAddress.getLocalHost();
    dc.bind(new InetSocketAddress(localHost, 0));

    Server server = new Server(dc.getLocalAddress());
    Thread serverThread = new Thread(server);
    serverThread.start();

    try {
        InetSocketAddress isa = new InetSocketAddress(localHost, server.port());
        dc.connect(isa);

        ByteBuffer bb = ByteBuffer.allocateDirect(12);
        bb.order(ByteOrder.BIG_ENDIAN);
        bb.putInt(1).putLong(1);
        bb.flip();

        dc.write(bb);
        bb.rewind();
        dc.write(bb);
        bb.rewind();
        dc.write(bb);

        Thread.sleep(2000);

        serverThread.interrupt();
        server.throwException();
    } finally {
        dc.close();
    }
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:33,代碼來源:EmptyBuffer.java

示例12: close

import java.nio.channels.DatagramChannel; //導入方法依賴的package包/類
@Override
protected void close(DatagramChannel handle) throws Exception {
    handle.disconnect();
    handle.close();
}
 
開發者ID:eclipse,項目名稱:neoscada,代碼行數:6,代碼來源:NioDatagramConnector.java

示例13: datagramChannel

import java.nio.channels.DatagramChannel; //導入方法依賴的package包/類
@Test
public void datagramChannel() throws Exception {
    DatagramChannel channel = DatagramChannel.open();
    channel.socket().bind(new InetSocketAddress(0));

    channel.socket().setTrafficClass(0x10);
    channel.send(ByteBuffer.wrap(DATA), new InetSocketAddress(DESTINATION, 5683));
    System.out.println("VERIFY IN WIRESHARK THAT PACKET'S TRAFFIC-CLASS IS SET!");

    assertEquals(0x10, channel.socket().getTrafficClass());
    channel.close();
}
 
開發者ID:ARMmbed,項目名稱:java-coap,代碼行數:13,代碼來源:TrafficClassVerifier.java

示例14: main

import java.nio.channels.DatagramChannel; //導入方法依賴的package包/類
public static void main(String args[]) throws IOException {
    boolean expectFail = false;

    /*
     *   [-expectFail] [options...]
     */
    String options[] = args;
    if (args.length > 0 && args[0].equals("-expectFail")) {
        // shift out first arg to create options
        expectFail = true;
        options = new String[args.length-1];
        if (args.length > 1) {
            System.arraycopy(args, 1, options, 0, args.length-1);
        }
    }

    /*
     * Create the listener which will be used to read the test result
     * from the service.
     */
    ServerSocketChannel ssc = ServerSocketChannel.open();
    ssc.socket().bind(new InetSocketAddress(0));

    /*
     * The port is passed to the service as an argument.
     */
    int port = ssc.socket().getLocalPort();
    String arg[] = new String[1];
    arg[0] = String.valueOf(port);

    /*
     * Launch service with a SocketChannel (tcp nowait)
     */
    SocketChannel sc = Launcher.launchWithSocketChannel(TEST_SERVICE, options, arg);
    waitForTestResult(ssc, expectFail);
    sc.close();

    /*
     * Launch service with a ServerSocketChannel (tcp wait)
     * launchWithServerSocketChannel establishes a connection to the service
     * and the returned SocketChannel is connected to the service.
     */
    sc = Launcher.launchWithServerSocketChannel(TEST_SERVICE, options, arg);
    waitForTestResult(ssc, expectFail);
    sc.close();

    /*
     * Launch service with a DatagramChannel (udp wait)
     */
    DatagramChannel dc = Launcher.launchWithDatagramChannel(TEST_SERVICE, options, arg);
    waitForTestResult(ssc, expectFail);
    dc.close();

    if (failures > 0) {
        throw new RuntimeException("Test failed - see log for details");
    } else {
        System.out.println("All tests passed.");
    }
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:60,代碼來源:StateTest.java


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