首页>代码>java NIO简单聊天对话实例demo分享>/NIO-Chat-Client/src/com/zuidaima/client/ReadThread.java
package com.zuidaima.client;

import com.zuidaima.client.utils.CharactorUtils;
import com.zuidaima.client.utils.ChatClientConfig;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.Selector;
import java.nio.channels.SocketChannel;


public class ReadThread extends Thread {
    
    ByteBuffer buffer = ByteBuffer.allocate(ChatClientConfig.BUFFER_SIZE);
    
    @SuppressWarnings("unused")
	@Override
    public void run() {
        
        SocketChannel clientChannel = ClientService.clientChannel;
        Selector selector = ClientService.selector;
        
        try {
            while (selector.select() > 0) {
            	// Java8的写法 
                selector.selectedKeys().forEach((key) -> {
                    
                    if (key.isReadable()) {
                        String receive = null;
                        buffer.clear();
                        try {
                            ((SocketChannel) key.channel()).read(buffer);
                            buffer.flip();
                            receive = CharactorUtils.utf16Decoder.decode(buffer).toString();
                            System.out.println(receive);
                        } catch (IOException e) {
                            e.printStackTrace();
                        } finally {
                            selector.selectedKeys().remove(key);
                        }
                    }
                });
       
                
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        
    }
}
最近下载更多
xushijie  LV11 2020年12月23日
admin_zyg  LV2 2020年8月3日
2187693636  LV12 2020年4月6日
guoruchao  LV13 2019年11月5日
kimshell  LV3 2019年10月14日
jaden12  LV3 2019年10月10日
whywhywhy  LV10 2019年9月20日
zxc164042899  LV4 2019年4月26日
912299793  LV21 2019年4月18日
最代码酒酒  LV20 2019年4月16日
最近浏览更多
柳咪华沙  LV7 6月28日
wppppp  LV3 6月4日
28128觅北  LV2 5月22日
851690469  LV1 2023年10月18日
2017143155  LV12 2023年6月24日
人工智能4708  LV11 2023年5月8日
hy0047  LV4 2023年4月18日
微信网友_5981140928106496  LV5 2023年3月22日
魏振华  LV1 2023年3月12日
yohohero  LV1 2023年1月14日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友