Im folgenden Code für Steckdosen, erkläre ich einen Puffer Byte und höre für Client-Nachrichten in einer Schleife:Byte [] Puffer auf Nullen zurücksetzen?
// Create some buffer
byte[] buffer = new byte[512];
while (true)
{
// Listen for messages from Client
int length = socket.getInputStream().read(buffer);
if (length != -1)
System.out.println(new String(buffer));
else
break;
// Reset buffer here to zeros?
}
Jedes Mal, wenn ich benötigen würde, den Inhalt des Puffers zum Zurücksetzen eine neue Nachricht zu erhalten. Was ist der richtige Weg, dies zu tun?
Das ist kein zuverlässiger Weg, um eine Zeichenfolge über ein erhalten Steckdose. Es gibt keine Garantie, dass ein vollständig codiertes Byte-Array in einem einzigen 'read()' Aufruf zurückgegeben wird. Verwenden Sie 'DataInput/DataOutput'' readUTF()/writeUTF() 'oder etwas Ähnliches. –
@JamesKPolk: oder ich könnte Länge der Nachricht in Bytes übergeben .. – user963241
Ja, das könnte funktionieren, vor allem, wenn Sie die Methoden von 'DataInput/DataOutput' wie' readInt()/writeInt() 'und' ReadFully() '. –