服务器端传送过来的是二进制,客户端如何接收呢,并将其转化为字符型的呢?

解决方案 »

  1.   

    接收肯定是按字节来的,将收到的byte数组转成String,注意编码就行了
      

  2.   

    String str = new String(bytes, encoding);
    bytes 是byte数组,恩coding是bytes中数据的编码方式
      

  3.   

    不好意思,我不明白java io流,你能否贴上一段如何用字节流接收呢
      

  4.   

    楼上说的对头,还有就是你必须得知道服务端的编码是什么,不然的话很难弄的。
    如果是网络编程的话应该还需要URL编码URL.encode();你查查,具体我也记不清楚了
      

  5.   

    Socket.getInputStream获得一个InputStream
    用其read方法就行了
      

  6.   

    private String str;
     private Runnable mRunnable = new Runnable(){     public void run(){
         Log.v("ssssssss", "naong");
         while(true){
        
         try{
         byte[] buf = new byte[1024];
         int temp = 0;
         while((temp = mBufferedReader.read(buf))!=-1)
         {
         str = new String(buf, "GB2312");
         }
        
         }catch(Exception e){     Log.e("Debug",e.toString());     }     }
         }    };
       Handler mHandler = new Handler(){     public void handleMessage(Message msg){     super.handleMessage(msg);     try{
         textview.setText(str);
         }catch(Exception e){     //Log.e(DEBUG_TAG,e.toString());     }     }    };
      

  7.   

    这样写在textview没有任何变化,错在那里呢,
      

  8.   

    private InputStream mBufferedReader;
      

  9.   

    关于TextView的更新只能在主线程中共进行,你用了Handler的话,就可以把接收到的传第给主线程,让主线程更新啊。
    你在子线程中更新是没用的