Я хочу отправить сообщение с сервера всем клиентам.Не удается отправить сообщения всем клиентам
Мой подход заключается в создании ArrayList всех клиентов, которые в настоящее время подключены к серверу. Если какой-либо клиент отправляет сообщение, я перебираю через ArrayList и отправляю каждому из клиентов сообщение.
Проблема в том, что мои клиенты не получают никаких сообщений.
Вот мой метод отправить на стороне сервера:
private void message() {
while (true) {
DataInputStream fromClient;
try {
fromClient = new DataInputStream(socketNew.getInputStream());
message = fromClient.readUTF();
for (Socket s:socs) {
System.out.println(message);
DataOutputStream toClient = newDataOutputStream(s.getOutputStream());
toClient.writeUTF(message);
}
message="";
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Вот мой метод получить на стороне клиента:
private void receive_data() {
{
DataInputStream fromServer;
try {
fromServer = new DataInputStream(socket.getInputStream());
message = fromServer.readUTF();
console(message);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Любые предложения о том, где я мог бы делать все это неправильно?
Спасибо за ваше время.
Я покраснел, но безрезультатно. Можете ли вы сказать мне альтернативный подход к этому? –
Проверьте вторую половину ответа. Вы уверены, что получили сообщение. Попробуйте заменить сообщение = fromClient.readUTF(); с некоторым примером сообщения типа message = "foo"; –
'DataOutputStreams' не нуждается в очистке, если нет под ним' BufferedOutputStream', которого нет здесь. – EJP