📄 multicastserverthread.java
字号:
package section20;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Date;
public class MulticastServerThread extends Thread {
private long FIVE_SECONDS=5000;
private boolean moreQuotes=true;
DatagramSocket socket=null;
private static BufferedReader in;
public MulticastServerThread(DatagramSocket socket)throws IOException {
super();
this.socket=socket;
in=new BufferedReader(new FileReader("one-liners.txt"));
// TODO Auto-generated constructor stub
}
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.getBytes();
InetAddress group=InetAddress.getByName("230.0.0.1");
DatagramPacket packet=new DatagramPacket(buf,buf.length,group,1111);
socket.send(packet);
try{
sleep((long)(Math.random()*FIVE_SECONDS));
}catch(InterruptedException e){}
}catch(IOException e)
{
e.printStackTrace();
moreQuotes=false;
}
}
socket.close();
}
protected static String getNextQuote()
{
String returnValue=null;
try{
if((returnValue=in.readLine())==null)
{
in.close();
returnValue="No more quotes.Goodbye.";
}
}catch(IOException e)
{
returnValue="IOException occurred in server";
}
return returnValue;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -