У меня проблема с моим широковещательным методом. Я поболтал с сервером и клиентами. Каждый клиент запускает один поток и имеет собственный сокет для выходного потока. В начале все работает нормально, но после нескольких сообщений может отправлять только один клиент, а другой только получает сообщения.?! Я не знаю, почему у кого-то есть идея? В начале оба могут отправлять и получать. Я не могу закрыть выходной поток, потому что тогда я получаю исключение nullpointer, но, возможно, это ошибка? Благодарен за помощь!Один клиент просто прослушивает несколько сообщений: Чат клиентского сервера с сокетами ArrayList outputstreamwriter
Сервер:
public static void broadcastJSON(JSONObject jsonObject, ArrayList<Socket> socketList)throws IOException{
OutputStreamWriter out = null;
for(int i=0; i<socketList.size(); i++){
out=new OutputStreamWriter(socketList.get(i).getOutputStream(), "UTF-8");
out.write(jsonObject.toString() + "\n");
out.flush();
}
}
Клиент:
public JSONObject receiveJSON()throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(Client.socket.getInputStream(), "UTF-8"));
String obje = in.readLine();
JSONObject jsonObject = new JSONObject(obje);
return jsonObject;
}
хорошо, я попробую это спасибо! Я думал об этом раньше. в полученном сообщении это должно быть возможно, но как я могу это сделать в широковещательном методе, когда мне нужно выпустить поток для каждого конкретного сокета в socketList. Спасибо за ваш ответ! –