1.socket连接,收到的字节流打印出来和服务器发出来的不一样,只有一个字节不一样
原来我是这么写的
        public byte[] recvMsgBytes() {        String line = null;
        StringBuffer sb = new StringBuffer();
        try {            BufferedReader d = new BufferedReader(new InputStreamReader(socket                    .getInputStream()));
            while ((line = d.readLine()) != null) {
                // 把每一行加到sb后
                sb.append(line);            }
         b=null;
         d.close();        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }        if (sb.length() == 0) {
            return null;
        }        return sb.toString().getBytes();         }结果字节流不对
发出:-41 -81 -41 -65 -56 -69
收到:-41 -81 -41 -65 -56 63我以为是String的问题,换用InputStreamReader 和sun.io.CharToByteConverter 
   ......
    InputStreamReader d = new InputStreamReader(socket
                    .getInputStream());
                while (!d.ready()) {
                    Thread.sleep(500);
                }            int i;            CharToByteConverter converter=CharToByteConverter.getDefault(); 
            char[] c = new char[512];
            d.read(c);
            byte[] b = new byte[512];
            b=converter.convertAll(c); 
            System.out.println("length"+b.length+" "+c.length);            sb.append(b);
            d.close();
问题还是一样,而且length显示 b.length=219 c.length=512
不知道为啥2.在后面用new String(byte[] temp)保存字节数组
    fp.setName_cn(new String(temp));
    for(int i=0;i<temp.length;i++){
                System.out.print(temp[i]+" ");
            }
    System.out.println(" ");
            temp = fp.getName_cn().getBytes();
            for(int i=0;i<temp.length;i++){
               System.out.print(temp[i]+" ");
           }
    System.out.println(" ");
    通过String转换一下后,字节又变了
原来是:-41 -81 -41 -65 -56 63
后来是:-41 -81 -41 -65 63 63
谁能给解释一下?尤其是第一个,怎么会收到的字节流不一样了呢,我做了些省略了,程
序一共接收一百多个字节,只有一个是错的,怎么回事呢?
谢谢