Pb de lecture sur socket java

1982julien1982 Messages postés 1 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 23 février 2006 - 23 févr. 2006 à 10:18
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 23 févr. 2006 à 10:50
Bonjour à tous ...
J'ai un petit problème avec la lecture sur un socket java.
Voici mon pb :
Le serveur me renvoit une chaine d caractères qui ne contient pas de caractère de fin de chaine ni de retour à la ligne.
Donc les méthodes readLine() et read() bloque mon programme.

Comment faire pour savoir que la totalité des caractères envoyés par le serveur sont arrivés ?

Merci beaucoup !

Julien

1 réponse

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
23 févr. 2006 à 10:50
Salut,



tu peux utiliser redef la methode read comme suit:



public String read() {

try {

//création d'un tableau de la bonne dimention

byte[] buffer = new byte[inputStream.available()];

int offset = 0;

while (true) {

int n = 0; //nombre de char lu

int i = inputStream.available();//nombre de char à lire

n =
inputStream.read(buffer, offset, i);//lecture du contenu de la socket

//il n'y a plus rien à lire

if (n<=0 || n == i) {


if (n!=-1) offset+=n; //utile si tu veux
garder une trace de tous ce que tu as lu

break;

}


offset+=n;//incrémentation de l'offset pour ne pas ecraser ce que tu as
lu

}

return new String(buffer);//récupération de ton contenu sous forme de string

//mais tu peux aussi récupérer une image

//java.awt.Toolkit.getDefaultToolkit().createImage(buffer);

} catch (IOException e) {

return null;

}

}

WORA
0
Rejoignez-nous