Bonjour,
j'essaye de faire fonctionner un tableau de socket java dans un application de dialogue social pour faire communiquer plusieurs
clients par l'interm�diaire d'un seul serveur (chat). Mais voila que le programme se bloque voici le code programme
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
 
public class Serveur1 {
public static void main(String[] zero) {
ServerSocket socketserver1;
ServerSocket socketserver2;
ServerSocket[] socketserver_t;
Socket socket1 = null;
Socket socket2 = null;
Socket socket_t[];
int nombre_client = 0;
    try {
 
        socketserver1 = new ServerSocket(2009);
        socketserver2 = new ServerSocket(2010);
        socketserver_t = new ServerSocket[4];
        socket_t = new Socket[4];
        socketserver_t[0] = socketserver1;
        socketserver_t[1] = socketserver2;
        Thread t1 = new Thread(new declencher_client(socketserver_t,0,socket_t,nombre_client));
        Thread t2 = new Thread(new declencher_client(socketserver_t,1,socket_t,nombre_client));
        t1.start();
        t2.start();
        System.out.println("attente");
        while (true)
        {
 
 
        }
 
    } catch (IOException ex) {
        Logger.getLogger(Serveur1.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
 
class declencher_client implements Runnable {
       int nombre_client;
       private ServerSocket socketserver;
       private int numero_client;
       Socket[] socket_t;
       public declencher_client(ServerSocket s[],int n, Socket[] socket_t, int nombre_client){
       numero_client = n;
       socketserver = s[n];
       this.socket_t = socket_t;
       this.nombre_client = nombre_client;
        }
 
       public void run() {
 
try {
while (true){
 
System.out.println("Le serveur est à l'écoute du port "+socketserver.getLocalPort());
socket_t[numero_client] = socketserver.accept();
System.out.println("le client numéro"+numero_client+"s'est connecté");
BufferedReader in[] = new BufferedReader[nombre_client];
PrintWriter out[] = new PrintWriter[nombre_client];
BufferedReader in1;
PrintWriter out1 = null;
String message = new String();
for (int i =0;i<nombre_client;i++){
in[i] = new BufferedReader (new InputStreamReader (socket_t[i].getInputStream()));
out[i] = new PrintWriter(socket_t[i].getOutputStream());
}
String message_distant;
while (true){
 
message_distant = in[0].readLine();
System.out.println(message_distant);
out[0].println(message_distant);
out[0].flush();
 
}
}
 
/*if (message_distant.compareTo("deconn")==0){
    out.print("deconn");
    out.flush();
    socket.close();
    System.out.println("déconnection de serveur");
    socketserver.close();
}*/
}
 
catch (IOException e)
{
    e.printStackTrace();
 }
        }
 
 
 
}
concentrez dans ce point car l'origine d'erreur est ici je crois
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
while (true){
 
message_distant = in[0].readLine();
System.out.println(message_distant);
out[0].println(message_distant);
out[0].flush();
 
}