📄 discandjoin.java
字号:
import net.jxta.discovery.DiscoveryEvent;
import net.jxta.discovery.DiscoveryListener;
import net.jxta.discovery.DiscoveryService;
import net.jxta.document.Advertisement;
import net.jxta.document.AdvertisementFactory;
import net.jxta.document.MimeMediaType;
import net.jxta.peergroup.PeerGroup;
import net.jxta.peergroup.PeerGroupID;
import net.jxta.protocol.DiscoveryResponseMsg;
import net.jxta.protocol.ModuleImplAdvertisement;
import net.jxta.protocol.PeerGroupAdvertisement;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Enumeration;
/**
* 查找点组chatpg1的通告,如果找到就加入,如果没有找到就创建
*/
public class DiscAndJoin {
private PeerGroup chatpg1;
public PeerGroup JoinPeerGroup(PeerGroup netPeerGroup,DiscoveryService hdisco) throws Exception {
int count = 3;
Enumeration ae = null;
//查找点组通告
while (count-- > 0) {
try {
hdisco.getRemoteAdvertisements(null, DiscoveryService.GROUP,
"Name", "chaolu", 1, null);
try {
Thread.sleep(10000);
} catch (InterruptedException ie) {}
ae = hdisco.getLocalAdvertisements(DiscoveryService.GROUP,
"Name", "chaolu");
if ((ae != null) && ae.hasMoreElements()) {
break;
}
} catch (IOException e) {
}
}
PeerGroupAdvertisement chatpgAdv = null;
//如果没有找到,就创建点组
if (ae == null || !ae.hasMoreElements()) {
System.out.println("没有找到,要新建一个点组");
CreatePeerGroup createpg = new CreatePeerGroup();
try {
chatpg1 = createpg.createPeerGroup(netPeerGroup);
JoinGroup joingp = new JoinGroup();
joingp.joinGroup(chatpg1);
} catch (Exception e) {
return null;
}
} else {
//如果找到,就加入
System.out.println("找到点组,加入");
try {
chatpgAdv = (PeerGroupAdvertisement) ae.nextElement();
chatpg1 = netPeerGroup.newGroup(chatpgAdv);
JoinGroup joingp = new JoinGroup();
joingp.joinGroup(chatpg1);
} catch (Exception e) {
System.out.println("加入已经创建的点组出现错误");
throw e;
}
}
return chatpg1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -