send.java

来自「短信发送」· Java 代码 · 共 64 行

JAVA
64
字号
/**
 * Created at Nov 29, 2008
 */
package com.jdev.net.samples;

import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.SocketChannel;
import java.util.Set;


/**
 * <p>Title: Send</p>
 * <p>Description: </p>
 * @author Lawrence
 * @version 
 */
public class Send {   
	  
    public static void main(String[] args) throws Exception {   
        SocketChannel socketChannel = SocketChannel.open();   
        ByteBuffer buffer = ByteBuffer.allocate(1024);   
        Selector selector = Selector.open();   
        buffer.put("我是中国人,我爱我的祖国,hadeslee".getBytes());   
        buffer.flip();   
  
        socketChannel.configureBlocking(false);   
        socketChannel.register(selector, SelectionKey.OP_CONNECT   
                | SelectionKey.OP_READ | SelectionKey.OP_WRITE);   
        socketChannel.connect(new InetSocketAddress("127.0.0.1", 6188));   
        while (!socketChannel.finishConnect())   
            ;   
//        socketChannel.write(buffer);   
        System.out.println("进入循环");   
        Thread.sleep(1000);   
        int sum = selector.select();   
        while (sum > 0) {   
            Thread.sleep(500);   
            System.out.println("终于大于0了");   
            Set<SelectionKey> set = selector.selectedKeys();   
            System.out.println("大小是:" + set.size());   
            for (SelectionKey key : set) {   
                int ops = key.readyOps();   
                if ((ops & SelectionKey.OP_CONNECT) == SelectionKey.OP_CONNECT) {   
                    socketChannel.write(buffer);   
                    System.out.println("连接成功");   
                }   
                if ((ops & SelectionKey.OP_READ) == SelectionKey.OP_READ) {   
                    System.out.println(" 收到东西");                       
                    buffer.flip();   
                    System.out.println("收到的是:"  
                            + new String(buffer.array(), 0, buffer.limit()));   
                       
                    socketChannel.write(buffer);   
  
                }   
            }   
            selector.selectedKeys().clear();   
        }   
    }   
}  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?