package cn.ccsu.chatserver; import java.io.*; public class BroadCast extends Thread { // ��������ͻ��˹㲥�߳� ClientThread clientThread; // ����ServerThread���� ServerThread serverThread; String str; public BroadCast(ServerThread serverThread) { this.serverThread = serverThread; } // �÷����������Dz�ͣ�������пͻ��˷�������Ϣ public void run() { while (true) { try { // �߳�����200 ms Thread.sleep(200); } catch (InterruptedException E) { } // ͬ����serverThread.messages synchronized (serverThread.messages) { // �ж��Ƿ���δ������Ϣ if (serverThread.messages.isEmpty()) { continue; } // ��ȡ�������˴洢����Ҫ���͵ĵ�һ��������Ϣ str = (String) this.serverThread.messages.firstElement(); } // ͬ����serverThread.clients synchronized (serverThread.clients) { // ����ѭ����ȡ�������д洢�����н�������ͻ��˵����� for (int i = 0; i < serverThread.clients.size(); i++) { clientThread = (ClientThread) serverThread.clients .elementAt(i); try { // ���¼��ÿһ���ͻ��˷���������Ϣ clientThread.out.writeUTF(str); } catch (IOException E) { } } // ��Vector������ɾ���Ѿ����͹�������������Ϣ this.serverThread.messages.removeElement(str); } } } }