Plop à tous
Alors voilà, j'ai pour projet de créer un petit JCC (jeu de cartes) en console, avec un mode multijoueur réseau où l'utilisateur choisirait d'héberger le jeu (serveur+client), soit d'y jouer simplement (client). Du coup, j'ai farfouillé un peu parmi les tutos Java de Developpez, et j'ai trouvé celui-ci. Donc, ma question est : comment faire pour qu'une instance d'une classe héritée de Thread attende et traite des données reçues depuis les différents clients tant que le serveur est "en marche"? Voici le code (pour l'instant assez minimaliste) de la classe sus-nommée :ainsi qu'une partie de ma classe MpServ.java qui pourrait toujours servir :
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 package net.evenkoryis.technics; import java.nio.channels.Selector; import java.io.IOException; public class ServThread extends Thread { private Selector sel = null; public ServThread(String nm) throws IOException { super(nm); this.sel = Selector.open(); } public void run() { // Code recherché } public Selector getSelector() { return this.sel; } }Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 ServerSocketChannel sv = null; byte[] buff = new byte[4096]; public MpServ() throws IOException, SocketException { this.sv = ServerSocketChannel.open(); this.sv.configureBlocking(false); ServThread th = new ServThread("serv_"+InetAddress.getLocalHost()); this.sv.register(th.getSelector(), this.sv.validOps()); this.sv.socket().bind(new InetSocketAddress(InetAddress.getLocalHost(), 2046)); }
Partager