Dans le code ci-dessous pour les prises, je déclare un tampon d'octets et écouter les messages des clients dans une boucle:Réinitialiser octet [] tampon à zéros?
// 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?
}
Chaque fois que je nécessaire de rétablir le contenu du tampon pour recevoir un nouveau message. Quelle est la bonne façon de faire cela?
Ce n'est pas un moyen fiable pour recevoir une chaîne sur une prise. Il n'y a aucune garantie qu'un tableau octet codé complet sera retourné dans un seul appel 'read()'. Utilisez 'DataInput/DataOutput'' readUTF()/writeUTF() 'ou quelque chose d'aussi fiable. –
@JamesKPolk: ou je pourrais passer la longueur du message en octets .. – user963241
Oui, cela pourrait fonctionner, surtout si vous utilisez les méthodes de 'DataInput/DataOutput' telles que' readInt()/writeInt() 'et' readFully() '. –