blocage sur la lecture d'un socket

blocage sur la lecture d'un socket - Java - Programmation

Marsh Posté le 24-07-2006 à 10:47:52    

Bonjour,
je réalise une interface entre deux système, la machine A établit une connexion sur mon programme via un socket, je lis ce qu'elle m'envoie, je redistribue dans une autre database, et j'envoie un ack propre a la machine A de confirmation de bonne réception et traitement du record.
 
Ce qui se passe d'étrange c'est que la lecture sur mon socket se fait très rapidement au début, 150-200 records, puis passé ce cap les réception sont beaucoup plus lentes, une toutes les 3 secondes, puis au bout de +/- une minute cela reprend rapidement, etc...
La machine A ne semble pas en cause car ses envois sur d'autres interfaces ne montrent pas ces faiblesses.
 
Le traitement que j'effectue sur les records ne sont pas la cause non plus car je les ai écartés pour tester et le comportement est le même.
 
 
Le code est vraiment basique:

Code :
  1. while (true){
  2.    userInput = "";
  3.    while(true){
  4.     int carRead = in.read(buffer);
  5.     if (carRead != 0){
  6.      userInput+= new String(buffer,0,carRead-1);
  7.      if (buffer[carRead-1] == 10){
  8.       break;
  9.      }
  10.     }else{
  11.      Thread.sleep(5);
  12.     }
  13.    }
  14.                // mon traitement
  15.    out.println(ack); //le ack technique pour l'autre machine
  16.   }


 
j'ai essayé de passer par des BufferedReader, etc, le comportement est toujours le même.
 
 
merci de votre aide

Reply

Marsh Posté le 24-07-2006 à 10:47:52   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed