Bonjour,
Je suis en train de crée une application qui envoi un objet serialiser à travers une socket.
L'application fonctionne du serveur vers le client. Par contre le thread de réception du serveur ne fonctionne pas.
Il renvoi l'erreur "invalid type code: AC".
Je vous remercie d'avance pour vos réponses.
Voici mon code.
##############################
Classe Main
##############################
##############################
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 public static void main(String[] args) { String coucou = JOptionPane.showInputDialog(null, "client ou serveur", "Type", JOptionPane.OK_OPTION); if (coucou.equals("client") || coucou.equals("Client")) client(); else serveur(); //if (args.length > 0) client(); //else serveur(); } public static void client ( ) { System.out.println("Client"); // ouvrir une socket sur un port / localhost try { s = new Socket("localhost",62525); out = new ObjectOutputStream(s.getOutputStream()); createMainForm(s,"Client"); } catch(Exception e) { System.out.println("Erreur creation socket"); } } public static void serveur ( ) { System.out.println("Serveur"); // ouvrir une socket sur un port en tant que serveur try { srv = new ServerSocket(62525); //instanci la socket sur le port s = srv.accept(); //bloquant //Cree la forme principal createMainForm(s,"Serveur"); } catch(IOException e) { System.out.println(e.getMessage()); System.exit(0); } catch(Exception e) { System.out.println("Erreur creation socket et accept"); System.exit(0); } } private static void createMainForm(Socket s, String title) { // creation d'un nouveau dessin a = new Dessin(s); ... }
Classe Dessin
##############################
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 public Dessin(Socket s) { formes = new ArrayList(); this.s = s; try { in = new ObjectInputStream(s.getInputStream()); out = new ObjectOutputStream(s.getOutputStream()); } ... } public synchronized void readSocket() { Object f; try { f = in.readObject(); //f = in.readUnshared(); System.out.println("Flag de l'objet recu : "+ ((Forme)f).getAdd()); if(((Forme)f).getAdd()) { this.addForme((Forme)f); System.out.println("Ajout de la forme recu"); } else //flag de suppression de forme { this.deleteForme((Forme)f); System.out.println("Effacement de la forme recu"); } System.out.println("Objet recu : "+f.toString()); } catch(Exception e) { System.out.println("Erreur dans la reception des donnees : " + e.getMessage()); } }
Partager