📄 helloworldmy.java
字号:
package com.hotct.jxta;import net.jxta.id.IDFactory;import net.jxta.platform.NetworkConfigurator;import net.jxta.platform.NetworkManager;import net.jxta.peergroup.*;import net.jxta.peer.*;import java.text.MessageFormat;import java.io.File;import java.net.URI;import java.net.URISyntaxException;import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.text.MessageFormat;/** * A example of strating and stopping JXTA */public class HelloWorldmy { /** * Main method * * @param args * none defined */ public static void main(String args[]) { NetworkManager manager = null; String seed = "hotct"; NetworkConfigurator netWorkCon = new NetworkConfigurator(); PeerGroup netPeerGroup = null; PeerID peerId = null; try { manager = new NetworkManager(NetworkManager.ConfigMode.EDGE,"HelloWorld", new File(new File(".cache"), "HelloWorld").toURI()); System.out.println("Starting JXTA"); ///////////////////////////NetworkManager///////////////////////////// manager.setConfigPersistent(true); manager.setInstanceHome(new File(new File(".leihl"), "Helen").toURI()); // 重新设置临时文件夹的名称 manager.setInstanceName("hotct"); manager.setMode(NetworkManager.ConfigMode.ADHOC); // 重新设置这个peer的模式 manager.setUseDefaultSeeds(true); //////////////////////////NetworkConfigurator//////////////////////// netWorkCon.setName("New Peer Name"); netWorkCon.setPrincipal("hotct"); //设置用户名 netWorkCon.setPassword("password"); //设置密码 netWorkCon.setHttpEnabled(true); //默认为true,允许http通信 netWorkCon.setHttpIncoming(true); //默认为false,允许http信息进入 netWorkCon.setHttpOutgoing(true); //默认为true,允许http信息输出 netWorkCon.setTcpEnabled(true); //默认为true,允许tcp通信 netWorkCon.setTcpIncoming(true); //默认为true,允许tcp信息进入 netWorkCon.setTcpOutgoing(true); //默认为true,允许tcp信息输出 /////////////////////////获得默认点组//////////////////////////////// manager.startNetwork(); //应用设置,创建默认点组 netPeerGroup = manager.getNetPeerGroup(); // 获得默认点组 /** * 设置peerID * 他所在点组的id加上将指定的字符串用SHA-1算法格式化以后的字符串 * 加入的点组:默认点组netPeerGroup * 指定的字符串:leihailong */ peerId = (PeerID) IDFactory.newPeerID(netPeerGroup.getPeerGroupID(), hash("leihailong".toLowerCase())); System.out.println(peerId); netPeerGroup.getPeerAdvertisement().setPeerID(peerId); System.out.println("JXTA Started"); /** * 打印对NetworkManager进行的设置的信息 */ System.out.println("<<<<<<<<<<<<<<<NetworkManager>>>>>>>>>>>>>>>>"); System.out.println(" InfrastructureID: "+ manager.getInfrastructureID()); System.out.println(" InstanceHome: "+ manager.getInstanceHome()); System.out.println(" InstanceName: "+ manager.getInstanceName()); System.out.println(" Mode: " + manager.getMode()); System.out.println(" UseDefaultSeeds: "+ manager.getUseDefaultSeeds()); System.out.println(" isConfigPersistent: "+ manager.isConfigPersistent()); System.out.println("<<<<<<<<<<<<<<<NetworkConfigurator>>>>>>>>>>>>>>>>"); System.out.println(" MulticastSiz: "+ netWorkCon.getMulticastSize()); System.out.println("----------------PlatformConfig------------------------- "); System.out.println(netWorkCon.getPlatformConfig()); /** * 打印默认点组的信息 */ System.out.println("<<<<<<<<<<<<<<<打印默认点组的信息>>>>>>>>>>>>>>>>"); System.out.println(" peerGroupID: "+ netPeerGroup.getPeerGroupID()); System.out.println(" PeerGroupName: "+ netPeerGroup.getPeerGroupName()); System.out.println(" PeerGroupAdvertisemen: "+ netPeerGroup.getPeerGroupAdvertisement()); System.out.println(" ParentGroup: "+ netPeerGroup.getParentGroup()); System.out.println(" StoreHome: "+ netPeerGroup.getStoreHome()); System.out.println(" lookupInstance: "+ netPeerGroup.globalRegistry.lookupInstance(netPeerGroup.getPeerGroupID())); /** * 打印对等点的信息 */ System.out.println("<<<<<<<<<<<<<<<<<<<<打印对等点的信息>>>>>>>>>>>>>>>>>>>>>>>"); System.out.println(" 设置前的peerID: " + manager.getPeerID()); System.out.println(" 设置后的PeerID: " + netPeerGroup.getPeerID()); System.out.println(" PeerName: " + netPeerGroup.getPeerName()); System.out.println(" PeerAdvertisement: "+ netPeerGroup.getPeerAdvertisement()); } catch (Exception e) { e.printStackTrace(); System.exit(-1); } System.out.println("Waiting for a rendezvous connection"); boolean connected = manager.waitForRendezvousConnection(12000); System.out.println(MessageFormat.format("Connected :{0}", connected)); System.out.println("Stopping JXTA"); manager.stopNetwork(); } /** * 用 SHA-1 算法对字符串进行格式化 * * @param expression * @return */ private static byte[] hash(final String expression) { byte[] result; MessageDigest digest; if (expression == null) { throw new IllegalArgumentException("Invalid null expression"); } try { digest = MessageDigest.getInstance("SHA1"); } catch (NoSuchAlgorithmException failed) { failed.printStackTrace(System.err); RuntimeException failure = new IllegalStateException( "Could not get SHA-1 Message"); failure.initCause(failed); throw failure; } try { byte[] expressionBytes = expression.getBytes("UTF-8"); result = digest.digest(expressionBytes); } catch (UnsupportedEncodingException impossible) { RuntimeException failure = new IllegalStateException( "Could not encode expression as UTF8"); failure.initCause(impossible); throw failure; } return result; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -