Bonjour,
j'ai une application (un jeu) qui doit pouvoir se jouer en reseau , un joueur vivant contre un autre joueur vivant.
Il faut donc que les joueurs disposent du même plateau de jeu il me semble..
J'essaie alors d'envoyer le JPanel du serveur au client ainsi :
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 package controller; import java.io.BufferedReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.PrintWriter; import java.net.Socket; import model.Game; import view.Board; public class Serv implements Runnable { private Socket socket; private ObjectOutputStream output; private ObjectInputStream input; private Game game; public Serv(Socket s, Game game) { this.socket = s; this.game = game; } public void run() { try { System.out.println("MultiGameS"); Board board = game.getGamePanel().getBoard(); output = new ObjectOutputStream(socket.getOutputStream()); output.writeObject(board); output.flush(); } catch (Exception e) { System.out.println("erreur"); e.printStackTrace(); } } }Ceci est censé fonctionner je pense, cependant le jeu du côté du client est comme "bloqué". Pourtant je n'ai aucune erreur et j'arrive bien à la fin du programme donc je ne comprends pas pourquoi il y'a ce "bloquage".
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 controller; import java.io.BufferedReader; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.PrintWriter; import java.net.Socket; import java.net.SocketException; import model.Game; import view.Board; public class Client implements Runnable { private Socket socket; private ObjectOutputStream output; private ObjectInputStream input; private Game game; public Client(Socket s, Game b) { this.socket = s; this.game = b; } public void run() { try { input = new ObjectInputStream(socket.getInputStream()); try { Board board = (Board) input.readObject(); game.getGamePanel().setBoard(board); } catch (ClassNotFoundException e) { e.printStackTrace(); } game.getGamePanel().getBoard().repaint(); } catch (SocketException e) { System.out.println("erreur"); e.printStackTrace(); } catch (IOException ex) { System.err.println("Le client n'est pas connecte"); } } }
merci.
Partager