android 开发 java写的 tcp 通信库,注册选择器时异常!跪求java高手指点!!!

问题描述

android 开发 java写的 tcp 通信库,注册选择器时异常!跪求java高手指点!!!

public void initialize() throws IOException
{
boolean done = false;

    try
    {
        Log.e(TAG,"SocketChannel.open:IP:["+hostIp+"Port:"+hostListenningPort+"].");
        // 打开监听信道并设置为非阻塞模式
        socketChannel = SocketChannel.open(new InetSocketAddress(hostIp,
                hostListenningPort));

        if (socketChannel != null)
        {

            socketChannel.socket().setTcpNoDelay(false);
            socketChannel.socket().setKeepAlive(true);
            // 设置 读socket的timeout时间
            socketChannel.socket().setSoTimeout(
                    Const.SOCKET_READ_TIMOUT);
           // 将选择器绑定到监听信道,只有非阻塞信道才可以注册选择器
            socketChannel.configureBlocking(false);

            // 打开并注册选择器到信道
            Log.e(TAG,"ready to open selector success.");
            selector = Selector.open();
            if (selector != null)
            {
                Log.e(TAG,"open selector success.");
                socketChannel.register(selector, SelectionKey.OP_READ|SelectionKey.OP_WRITE|SelectionKey.OP_ACCEPT);
                done = true;
            }
        }
    } catch(Exception ex)
    {
        Log.e(TAG,"Create SocketChannel error msg:!"+ex.getMessage());
    }
    finally
    {
        Log.e(TAG,"Create SocketChannel catch error!");
        if (!done && selector != null)
        {
            selector.close();
        }
        if (!done)
        {
            socketChannel.close();
        }
    }
}

解决方案

这个还没研究过,不知道你是这样的需求

时间: 2024-09-06 01:50:48

android 开发 java写的 tcp 通信库,注册选择器时异常!跪求java高手指点!!!的相关文章

Android开发实现布局中为控件添加选择器的方法

本文实例讲述了Android开发实现布局中为控件添加选择器的方法.分享给大家供大家参考,具体如下: 在开发过程中,动态交互的一些展示效果可以通过布局中添加选择器实现,这样就可减少Activity等的代码数量,MVP开发中降低耦合性,使开发人员在写代码时只需要关注逻辑处理. 比如:一个按钮,原本背景图片为红色,字体为黑色,点击时候背景图片为黄色,字体改为白色. 这类简单效果在布局时就可以实现: <Button android:id="@+id/btn_start" android:

如何用Java写出类似QQ好友列表那样的效果,求大神指教最好有代码

问题描述 如何用Java写出类似QQ好友列表那样的效果,求大神指教最好有代码 请问如何用Java写出类似QQ好友列表那样的效果,求大神指教最好有代码 解决方案 http://etwo.iteye.com/blog/1460375

初学java,自己用java写了一个简单的注册登录程序,没报错但有问题,希望能帮忙指点。

问题描述 初学java,自己用java写了一个简单的注册登录程序,没报错但有问题,希望能帮忙指点. import java.util.Scanner; class Yanzheng{ private String n; private String p; public void setNa(String na){ this.n = na; } public void setPa(String pa){ this.p = pa; } public String getNa(){ return n;

跪求java导出excel表格代码

问题描述 跪求java导出excel表格代码 方法执行了一点效果也没有,后台也没报错 解决方案 你可以 断点看下处理流程 及返回结果 解决方案二: 你可以 断点看下处理流程 及返回结果 解决方案三: 导出EXCEL表格的代码java写的excel表格数据导出代码java导出excel表格 解决方案四: 自己要学会排错,导出还是很简单的 解决方案五: 分块判断代码,先注释掉生成Excel代码,直接返回一个现有文件,看看浏览器上是否能收到返回流,这样确定响应返回文件的代码正确. 其次检查文件生成代码

java spring junit-java junit测试报错找不到自己定义的xml文件 跪求各位高手帮忙解决一下

问题描述 java junit测试报错找不到自己定义的xml文件 跪求各位高手帮忙解决一下 eclipse下junit测试时遇到如下错误,错误内容如下: at jp.co.dgic.eclipse.jdt.internal.junit.runner.DJUnitRunner.main(DJUnitRunner.java:49) caused by:org.springframework.beans.factory. BeanDefinitionStoreException:IoException

设计-求Java大神,帮忙做一个点餐系统,求java源代码

问题描述 求Java大神,帮忙做一个点餐系统,求java源代码 设计实现一个餐厅点餐系统,实现电子点餐,求java源代码 详细内容如图 流程图大概做了一个

我是新手刚学verilog,自己写了段程序警告太多跪求大神指点

问题描述 我是新手刚学verilog,自己写了段程序警告太多跪求大神指点 module a(nrst,clk,a,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11);input nrst,clk;input[3:0]a;output [3:0]C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11;reg [3:0]C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11;reg [3:0] CS,NS;parameter[3:0]IDLE=4'b0

跪求大神指点java算法

问题描述 跪求大神指点java算法 如何实现1+21+31+42+32+43+41+2+3.........的不规则加法,加的位数不确定 解决方案 这既是找规律,这就是1234...n的排列组合,你找个组合的算法,计算出各种组合,然后每个组合中的数相加

跪求JAVA实现的简单openAcs源码

问题描述 跪求JAVA实现的简单openAcs源码 解决方案 解决方案二:sourceforge上有个名叫libreacs,是别人上传的原来的openacs的源码.