java socket DataInputStream

问题描述 投票:1回答:4

我有一个多线程程序java java socket,并且收到了信息bizare。像这样¤¤¤¤¤¤23456718900263678722¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

public void run() 
       {
            try {

                byte[] bs = new byte[64];

                 // read data into buffer
                 dataReception.read(bs);

                 // for each byte in the buffer
                 for (byte b:bs)
                 {
                    // convert byte into character
                    char c = (char)b;

                    // print the character
                    System.out.print(c);
                 }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

我有一个多线程程序java java socket,并且收到了信息bizare。像这样的¤¤¤¤¤¤23456718900263678722¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ run(){...

java sockets datainputstream
4个回答
3
投票

问题在这里:


1
投票

如果您期望正好是64个字节,请使用readFully()而不是read(),,或者至少要注意其返回值。


0
投票

尝试:


0
投票

DataInputStream通常在需要通过套接字共享文本信息时使用。如果从另一端使用DataOutputStream.writeUTF(String str)发送传输的数据,请使用DataInputStream.readUTF()方法。在发送实际数据之前,DataInputStream和DataOutputStream发送两个字节(无符号)长度的数据。

© www.soinside.com 2019 - 2024. All rights reserved.