解决方案 »

  1.   

    更正一个错误:异常抛出点是
    while ( ( readBytes = ins.read( readBuffer ) ) != -1 )
    不是以上代码中标识的位置。
      

  2.   

    final int totalLength = ins.available( );
    final byte[ ] readBuffer = new byte[ READ_BUFFER_SIZE ];
    final ByteArrayBuffer buffer = new ByteArrayBuffer( totalLength );你为何要用final呢?改成yte[ ] readBuffer = new byte[ READ_BUFFER_SIZE ]; byteArrayBuffer buffer = new ByteArrayBuffer( totalLength );
    你会有惊喜的发现
      

  3.   


    这个buffer是不是final无关紧要,只是声明readBuffer不能指向其它的byte array,不影响。
    退一步说,如果是这个问题,那怎么解释模拟器上运行可以接收服务器返回数据?
      

  4.   


    这个buffer是不是final无关紧要,只是声明readBuffer不能指向其它的byte array,不影响。
    退一步说,如果是这个问题,那怎么解释模拟器上运行可以接收服务器返回数据?我首先想向你确认你的网络是内网吗?服务器和真机是在同一个局域网吗?
      

  5.   


    这个buffer是不是final无关紧要,只是声明readBuffer不能指向其它的byte array,不影响。
    退一步说,如果是这个问题,那怎么解释模拟器上运行可以接收服务器返回数据?我首先想向你确认你的网络是内网吗?服务器和真机是在同一个局域网吗?
    我确定网络没有问题,手机是通过随身wifi共享PC的网络连接,PC端模拟器测试没有上述问题。