Bonjour à tous (et à toutes),
Je commence un peu à regarder ce qu'on peut faire avec flash et je voudrais faire un serveur java tout bête.
j'ai pris l'exemple d'adobe pour le côté serveur :
et du côté client, j'ai cela :
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 import java.io.*; import java.net.*; class SimpleServer { private static SimpleServer server; ServerSocket socket; Socket incoming; BufferedReader readerIn; PrintStream printOut; public static void main(String[] args) { int port = 8080; try { port = Integer.parseInt(args[0]); } catch (ArrayIndexOutOfBoundsException e) { // Catch exception and keep going. } server = new SimpleServer(port); } private SimpleServer(int port) { System.out.println(">> Starting SimpleServer"); try { socket = new ServerSocket(port); incoming = socket.accept(); readerIn = new BufferedReader(new InputStreamReader(incoming.getInputStream())); printOut = new PrintStream(incoming.getOutputStream()); out("Enter EXIT to exit.\r"); boolean done = false; while (!done) { String str = readerIn.readLine(); if (str == null) { done = true; } else { out(str); if(str.trim().equals("EXIT")) { done = true; } } incoming.close(); } if(done == true) { out("Déconnecté"); } } catch (Exception e) { System.out.println(e); } } private void out(String str) { printOut.println(str.trim()+ (char)0x00); printOut.flush(); System.out.println(str); } }
Lorsque je lance l'application, mon textfield txtReponse se remplace bien par "Enter EXIT to exit." mais lorsque j'envoie une chaine de caractère au serveur à l'aide d'un input, il ne m'affiche rien.
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
42
43
44 package { import flash.net.XMLSocket; import flash.events.DataEvent; import flash.events.MouseEvent; import flash.events.Event; import flash.display.MovieClip; public class Main extends MovieClip { var _socket:XMLSocket; public function Main() { // constructor code this._socket = new XMLSocket(); this._socket.connect('127.0.0.1',8080); this._socket.addEventListener(DataEvent.DATA, reponse); this._socket.addEventListener(Event.CLOSE, handlerDeConnexion); btnEnvoyer.addEventListener(MouseEvent.CLICK, envoyer); } private function reponse(event:DataEvent):void { txtReponse.text = event.data; } private function handlerDeConnexion(event:Event):void{ trace ("DECO !"); } public function envoyer(event:MouseEvent):void{ _socket.send(txtChaine.text+"/n"); } } }
Dans la console non plus, c'est au moment ou je ferme mon application que le serveur affiche (dans la console) "Echo :" et les chaines de caractères que j'ai envoyé suivi d'un espace (alors qu'il aurait dû mettre un "Echo : " par chaine de caractère).
Voilà, je ne comprends pas bien d'où ça vient et comment résoudre ce problème.
D'avance, merci =D
Partager