Передача TCP-сервера Android

Я разрабатываю приложение для Android, которое использует TCP для подключения к устройству. Проблема в том, что я новичок в программировании сокетов. Я успешно сделал код сервера и клиента. Каждый клиент может подключиться к серверу, и сервер может ответить клиенту. Но я не могу заставить сервер отправлять сообщение всем подключенным клиентом одновременно. Каковы шаги, чтобы сервер передавал сообщение клиенту? Это код сервера:

ServerSocket server = null; try { server = new ServerSocket(9092); // start listening on the port } catch (IOException e) { Log.d("btnCreate onClick", "Could not listen on port: 9092"); } Socket client = null; while(true) { try { client = server.accept(); } catch (IOException e) { Log.d("btnCreate onClick", "Accept Failed"); } //start a new thread to handle this client Thread t = new Thread(new ClientConn(client)); t.start(); } 

И серверный поток:

 class ClientConn implements Runnable { private Socket client; ClientConn(Socket client) { this.client = client; } public void run() { BufferedReader in = null; PrintWriter out = null; try { /* obtain an input stream to this client ... */ in = new BufferedReader(new InputStreamReader( client.getInputStream())); /* ... and an output stream to the same client */ out = new PrintWriter(client.getOutputStream(), true); } catch (IOException e) { e.printStackTrace(); return; } String msg; try { while ((msg = in.readLine()) != null) { Log.d("ClientConn", "Client says: " + msg); out.println(msg); } } catch (IOException e) { e.printStackTrace(); } } } 

TCP – это протокол соединения «точка-точка». Это означает, что когда вы отправляете сообщение в сокете, оно переходит только к одному получателю. Другие IP-протоколы, такие как UDP, имеют режим «широковещания», где один пакет может обращаться к нескольким приемникам, но для TCP нет такой вещи.

Чтобы ваш сервер отправил одно и то же сообщение всем клиентам, серверу пришлось бы отправлять по одному сообщению в каждом сокете для каждого клиента.