Bonjour,

Je développe une Applet Java qui a pour but de remplacer une ancienne console ASCII. Le système auquel je suis relié envoie donc des caractères CR ou LF tantôt séparés tantôt à la suite (CRLF pour nouvelle ligne).
Je voudrais pouvoir traiter tous les cas.

Je reçois ces caractères d'une DataInputStream
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public tcpip(InetAddress ipa, int port)
 {
	 Socket s1 = null;
	 try {               // Open the socket
	 s1 = new Socket(ipa.getHostAddress(), port);
	 }
	 catch (IOException e) {
	 System.out.println("Error opening socket");
	 return;
	 }
	 s = s1;
	 try {               // Create an input stream
	 dis = new DataInputStream(new BufferedInputStream(s.getInputStream()));
	 }
	 catch(Exception ex) {
	 System.out.println("Error creating input stream");
	 }
	 try {               // Create an output stream
	 dos = new DataOutputStream(new BufferedOutputStream(s.getOutputStream()));
	 }
	 catch(Exception ex) {
	 System.out.println("Error creating output stream");
	 }
	 Poll = new Thread (this);
 }
Je décode donc le flot d'octet que je reçois de la manière suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
switch(CslText[CslIndex])
			{
			case CAR_ESC:
				TemoinESC=true;
				break;
			case CAR_TAB:
				//Avance au prochain caractère
				console.DeplaceCurseur(+1);
				break;
			case CAR_BS:
				//Reculer Car. Précédent
				console.DeplaceCurseur(-1);
				break;
			case CAR_CR:
				//aller au début de ligne
				console.CurrentPosition=NbLigneCnsl*console.Xmax;
				console.FConsole.setCaretPosition(console.CurrentPosition);
				TemoinSL=true;
				break;
			case CAR_LF:
				//saut de ligne
Mais durant mes tests, je m'aperçois que si tous se passe bien lorsque je reçois CR et LF séparément. Si je les reçois à la suite l'un de l'autre CRLF Java me fait sauter LF.

D'où ma question: Comment forcer Java à traiter tous les caractères reçus?

Merci d'avance.