紧急求助:怎样实现加入组播,并监听消息? 问题描述: 偶要实现加入某个组播的功能,并能够监听这个组播内发的消息!想请各位大虾帮忙,看怎样实现!不胜感激! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 答:这是我以前写的一个基于JAVA的组播的一个BBS小程序.仅供你参考.组IP是:228.9.9.9,若在同一台机器上运行,可以同时运行该程序几次,这样这几个实例自动加入该组,一个向组中发消息,其它的组的成员同时都收到.仅供你参考.参考代码:package network;import java.io.*;import java.net.*;public class MulticastBBS { private MulticastSocket ms=null; private InetAddress group=null; public MulticastBBS() throws Exception { group=InetAddress.getByName("228.9.9.9"); ms=new MulticastSocket(7777); ms.joinGroup(group); } class SendThread extends Thread { public void myRun() throws Exception { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String line=null; do{ line=br.readLine(); DatagramPacket sdp=new DatagramPacket( line.getBytes(), line.getBytes().length, group, 7777); ms.send(sdp); }while(!"quit".equalsIgnoreCase(line)); } public void run() { try { myRun(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class ReceiveThread extends Thread { public void myRun() throws Exception { boolean again=true; byte[] data=new byte[1024]; DatagramPacket rdp=new DatagramPacket(data,data.length); while(again) { ms.receive(rdp); System.out.println("组中的包:"+new String(rdp.getData(),rdp.getOffset(),rdp.getLength())); } } public void run() { try { myRun(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void main(String[] args) throws Exception { MulticastBBS bbs=new MulticastBBS(); bbs.new ReceiveThread().start(); bbs.new SendThread().start(); }} 怎样模拟TCP连接断开? 求助关于正则表达式 通过filter判断用户权限的问题 MANIFEST.MF中怎样设置程序启动内存大小 创建文件和写问题 求教多线程的例子! 请教,java.util中的Date和calendar,我不知道它们各自的用处和区别?我看不太懂Document,谢谢! 求中英文混合字符串长度的小问题,在线等,解决马上给分 java存储图片的问题!!请教!! 有关PACKAGE 的应用(100 高分) 计算编号问题 private static final long serialVersionUID = 1L; 这个!L是随便写写的吧?我们也可以随意给它一个值吧。?
仅供你参考.
参考代码:
package network;
import java.io.*;
import java.net.*;
public class MulticastBBS {
private MulticastSocket ms=null;
private InetAddress group=null;
public MulticastBBS() throws Exception
{
group=InetAddress.getByName("228.9.9.9");
ms=new MulticastSocket(7777);
ms.joinGroup(group);
}
class SendThread extends Thread
{
public void myRun() throws Exception
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String line=null;
do{
line=br.readLine();
DatagramPacket sdp=new DatagramPacket(
line.getBytes(),
line.getBytes().length,
group,
7777);
ms.send(sdp);
}while(!"quit".equalsIgnoreCase(line));
}
public void run()
{
try {
myRun();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class ReceiveThread extends Thread
{
public void myRun() throws Exception
{
boolean again=true;
byte[] data=new byte[1024];
DatagramPacket rdp=new DatagramPacket(data,data.length);
while(again)
{
ms.receive(rdp);
System.out.println("组中的包:"+new String(rdp.getData(),rdp.getOffset(),rdp.getLength()));
}
}
public void run()
{
try {
myRun();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) throws Exception {
MulticastBBS bbs=new MulticastBBS();
bbs.new ReceiveThread().start();
bbs.new SendThread().start(); }}