0

"\0" (null) に到達するまで、ソケットから読み取ろうとしています。これは、Flash で使用されるターミネータです。C(++)でもこの問題がありました。

while ((inputLine = in.readLine()) != null) {   
    outputLine = kkp.processInput(inputLine);
    out.println(outputLine);
    if (outputLine.equals("Bye."))
    break;
}

「readLine」は\r\nなどしかカウントしないため、Oracle Javaドキュメントのこのサンプルコードは私の状況では機能しません。バッファに読み込む方法がわかりません。それを行う方法についていくつかのアイデアがありますが、実装方法がわかりません。

4

2 に答える 2

0

DataInputStreamオブジェクトを使用して、ソケットから個々のバイトを読み取ることができます。

DataInputStream inStream = new DataInputStream(socket.getInputStream());

byte next = inStream.readByte();
于 2012-09-07T14:57:17.927 に答える
0

できるよ

InputStream in = socket.getInputStream();

for(int b; ((b = in.read()) > 0;) {
   // do something with b.
}
// stops at end of file or b == 0.
于 2012-09-07T15:04:19.120 に答える