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();
 
}