Bonjour à tous,
Tout d'abord je précise que je connais le principe des sockets et l'écriture et la lecture dessus. J'ai également déjà potassé le tuto de http://humbert-florent.developpez.co...reseau/avance/ et ça fait plus de 2h que je suis sur le même problème mais je ne comprends pas pourquoi cela bloque. Mon développement est dans le cadre d'un petit client POP. Donc là ça bloque au niveau de la récupération de l'entête gràce à la commande TOP (pour ceux qui connaissent). Voici mon code :
L'endroit où c'est bloqué est mentionné en ROSE
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 public void receiveDataSocket(String fileNameToWriteData, boolean isItForHead) throws .....{ String lineReaded = null; try { fw = new FileWriter(fileNameToWriteData, true); output = new BufferedWriter(fw); if(isItForHead){ while((lineReaded = fluxReader.readLine()) !=null){ output.write(lineReaded); output.flush(); } } else { do { lineReaded = fluxReader.readLine(); output.write(lineReaded+"\r\n"); output.flush(); }while(!(lineReaded.endsWith("\r\n.\r\n"))); } } catch (IOException e) { throw new ..........; } finally{ try { if(logger.isInfoEnabled()) logger.info("Closing flows for the file after reading on the socket."); output.close(); fw.close(); } catch (IOException e) { throw new ......; } } }Pour la réception sur le socket, j'ai recopié exactement la condition du while que je vois partout. J'arrive donc à récupérer en entier l'entête mais il ne sort jamais car mon fluxReader n'est jamais à null....
Si quelqu'un voit pourquoi je suis preneur.
Merci d'avance.
Partager