⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multicastserverthread.java

📁 JAVA的高级应用以及网络编程
💻 JAVA
字号:
import java.io.*;
import java.net.*;
import java.util.*;
public class MulticastServerThread extends QuoteServerThread
//从QuoteServerThread继承得到新的服务器线程类MulticastServerThread
{
	private long FIVE_SECOND=5000; //定义常量,5秒钟
	public MulticastServerThread(String name) throws IOException
	{
		super("MulticastServerThread");
		//调用父类,也就是QuoteServerThread的构造函数
	}
	
	public void run() //重写父类的线程主体
	{
		while(moreQuotes) {
			//根据标志变量判断是否继续循环
			try{
				byte[] buf=new byte[256];
				//创建缓冲区
				String dString=null;
				if(in==null) dString=new Date().toString();
				//如果初始化的时候打开文件失败了
				//则使用日期作为要传送的字符串
				else dString=getNextQuote();
				//否则调用成员函数从文件中读出字符串
				buf=dString.getByte();
				//把String转换成字节数组,以便传送send it
				InetAddress group=InetAddress.getByName("230.0.0.1");
				//得到230.0.0.1的地址信息
				DatagramPacket packet=new DatagramPacket(buf,buf.length,group,4446);
				//根据缓冲区,广播地址,和端口号创建DatagramPacket对象
				socket.send(packet); //发送该Packet
				try{
					sleep((long)(Math.random()*FIVE_SECONDS));
					//随机等待一段时间,0~5秒之间
				}catch(InterruptedException e) { } //异常处理
			}catch(IOException e){ //异常处理
			    e.printStackTrace( ); //打印错误栈
			    moreQuotes=false; //置结束循环标志
			}
		}
		socket.close( ); //关闭广播套接口
	}
}

⌨️ 快捷键说明

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