broadcast.java

来自「本java源程序包括了大量的学习程序(共27章)方便大家学习」· Java 代码 · 共 52 行

JAVA
52
字号
import java.io.*;
public class BroadCast extends Thread                  
{	//服务器向客户端广播线程
	//声明ClientThread对象
    ClientThread clientThread;
    //声明ServerThread对象
    ServerThread serverThread;
    String str;

    public BroadCast(ServerThread serverThread)
    {
        this.serverThread = serverThread;
    }

    public void run()
    {
        while(true)
        {
            try   //线程休眠300毫秒
            {
                Thread.sleep(300);
            }
            catch(InterruptedException E){}
            //同步化serverThread.messages
            synchronized(serverThread.messages) 
            {
            	//获取服务器端存取的某一客户端发送来得数据信息
                if(serverThread.messages.isEmpty()){continue;}
                str = (String)this.serverThread.messages.firstElement();
                
                //从Vector数组中删除某一客户端发送来得数据信息
                this.serverThread.messages.removeElement(str);
            }
            //同步化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){}
                }
            }
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?