ソケットからデータを受信するクライアントを作成し、データを char 配列に格納しようとしました。これが私がこれをやろうとしている方法です。
...
public void run() {
try {
DataInputStream m_DataInputStream = new DataInputStream(s.getInputStream()); //s is socket object
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
while ((msg = br.readLine()) != null) {
System.out.println(msg+" >msg");
try {
m_DataInputStream.readByte();
int len = available();
System.out.println("datalength "+len);
char[] c = new char[len];
int i = 0;
while (i < len) {
c[i] = (char) m_DataInputStream.readByte();
//System.out.print(c);
i++;
}
} catch (IOException e) {
e.printStackTrace();
}
if (msg.equals("Server is Shutting Down")) {
break;
}
}
s.close();
br.close();
m_DataInputStream.close();
} catch (Exception E) {
System.out.println(E+" :in Threadrecieve run method");
}
}
public int available() {
try {
return m_DataInputStream.available();
} catch (IOException e) {
return -1;
}
}
問題は、毎秒 m_DataInputStream の長さが 0 を示すことです。私が間違っていることを特定するのを手伝ってください。