您现在的位置: 爱51代码网 >> 范文 >> 文章正文
Java NIO终端关闭后服务器如何知道具体是哪台终端

当多个终端连接到服务器后,将它们都注册到服务器的一个Hashtable中:

Hashtable<String,SocketChannel> clientlist=new Hashtable<String,SocketChannel>();
String 相当于终端的用户名,SocketChannel 是各个终端的通道。

现在,如果一个终端关闭,服务器捕获这个异常后,如何确定是哪个终端呢?
 if (key.isReadable()) {
                        int count = 0;
                           SocketChannel channel = (SocketChannel) key.channel();
                           buffer.clear();
                           while ((count = channel.read(buffer)) > 0) {
                               buffer.flip();
                               //while (buffer.hasRemaining()) {
                                String receiveText = String.valueOf(cs.decode(buffer).array());
                                   System.out.println(receiveText);
                                   dispatch(channel, receiveText); 
                               //}
                                   channel.register(selector, SelectionKey.OP_READ);
                           }
                           if (count < 0) {
                               channel.close();
                               System.out.println("断开。。。"+PORT_NUMBER);
                           }
                    }
                }
我是这样写的,判断是哪个终端断开的
register(Selector sel, int ops, Object att) 的时候
在 Object att 里面存 终端的用户名
异常的时候,通过 SelectionKey.attachment(),把 终端的用户名 取出来

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    redhat 2.6 (santigo 5.6) vsftp
    shell如何实现自动填写操作执行下
    linux shell 文件配置sh:color:
    shell script语法一定要加path吗
    SecureCRT如何访问虚拟机vmWare中
    C#如何读取WINDOWS的放大系数
    cximge的图如何存入数据库并提取
    DBGRID控件显示查询结果文本类型
    TChart控件如何把表中右边的系列
    fastreport提示没有找到fr_class
    linux下编译faac及faad2提示 rec
    TClientDataSet如何避免多人更新
    如何用delphi代码修改XML节点
    vc++ pvoid *用delphi怎么表达
    GIS用百度行政区域的经纬度直接画
    不小心卸载了.net 4 extend,vs2
    C#byte【】里的数转换成string时
    C#的session取不到值
    java如何判断一个字符串里的数字
    随机找出24个不一样的字,在把一
    java自动把其中的List<Role>
    web.xml配置问题:"web-app" 
    json格式如何转换成javaBean
    page = (HtmlPage) webClien
    eclipse 3.7中安装SWT插件连
    java变量退出作用域会自动析
    easyui-datagrid url调用act
    jna调用dll无法加载动态库
    poi读取excel遇到空行怎么办
    计算一个字符串类型的四则运
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |