zoukankan      html  css  js  c++  java
  • 10、NIO--DategramChannel

    DatagramChannel

     Java NIO中的DatagramChannel是一个能收发
      UDP包的通道。
     操作步骤:
      打开 DatagramChannel
      接收/发送数据

    服务端

        @Test
        public void receive() throws IOException{
            DatagramChannel dc = DatagramChannel.open();
            
            dc.configureBlocking(false);
            
            dc.bind(new InetSocketAddress(8082));
            
            //选择器
            Selector selector = Selector.open();
            
            dc.register(selector, SelectionKey.OP_READ);
            
            while(selector.select() > 0){
                Iterator<SelectionKey> it =  selector.selectedKeys().iterator();
                
                while(it.hasNext()){
                    SelectionKey sk = it.next();
                    
                    if(sk.isReadable()){
                        ByteBuffer buf = ByteBuffer.allocate(1024);
                        
                        //接收数据
                        dc.receive(buf);
                        buf.flip();
                        System.out.println(new String(buf.array(),0,buf.limit()));
                        
                    }
                }
                it.remove();
            }
        }

    客户端:

        @Test
        public void send() throws IOException{
            
            DatagramChannel dc = DatagramChannel.open();
            
            dc.configureBlocking(false);
            
            ByteBuffer buf = ByteBuffer.allocate(1024);
            
            buf.put("MeChengs".getBytes());
            buf.flip();
            dc.send(buf, new InetSocketAddress("127.0.0.1", 8082));
            
            dc.close();
        }

  • 相关阅读:
    Bye sent_keys
    快速获取Jenkins上build
    快速搞定selenium grid分布式
    python 图形界面开发
    [分享] 自动化测试与持续集成方案-- UI 检查
    hua ge ju hao
    暴力 C++
    简单排序(java)
    记codeforces两题
    hdu 1874, dijkstra
  • 原文地址:https://www.cnblogs.com/Mrchengs/p/10840845.html
Copyright © 2011-2022 走看看