package Examples.B_Exploring_Connectivity_Issues.Monitoring;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import net.jxta.exception.PeerGroupException;
import net.jxta.id.IDFactory;
import net.jxta.peer.PeerID;
import net.jxta.peergroup.PeerGroup;
import net.jxta.peergroup.PeerGroupID;
import net.jxta.platform.NetworkConfigurator;
import net.jxta.platform.NetworkManager;
/**
* Simple RELAY peer.
*/
public class Relay_Robert {
// Static
public static final String Name_RELAY = "RELAY";
public static final PeerID PID_RELAY = IDFactory.newPeerID(PeerGroupID.defaultNetPeerGroupID, Name_RELAY.getBytes());
public static final int HttpPort_RELAY = 9900;
public static final int TcpPort_RELAY = 9715;
public static final File ConfigurationFile_RELAY = new File("." + System.getProperty("file.separator") + Name_RELAY);
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try {
// Removing any existing configuration?
NetworkManager.RecursiveDelete(ConfigurationFile_RELAY);
// Creation of the network manager
final NetworkManager MyNetworkManager = new NetworkManager(
NetworkManager.ConfigMode.RELAY,
Name_RELAY, ConfigurationFile_RELAY.toURI());
// Retrieving the network configurator
NetworkConfigurator MyNetworkConfigurator = MyNetworkManager.getConfigurator();
// Setting Configuration
MyNetworkConfigurator.setUseMulticast(false);
MyNetworkConfigurator.setTcpPort(TcpPort_RELAY);
MyNetworkConfigurator.setTcpEnabled(true);
MyNetworkConfigurator.setTcpIncoming(true);
MyNetworkConfigurator.setTcpOutgoing(true);
MyNetworkConfigurator.setHttpPort(HttpPort_RELAY);
MyNetworkConfigurator.setHttpEnabled(true);
MyNetworkConfigurator.setHttpIncoming(true);
MyNetworkConfigurator.setHttpOutgoing(true);
// Setting the Peer ID
MyNetworkConfigurator.setPeerID(PID_RELAY);
// Starting the JXTA network
PeerGroup NetPeerGroup = MyNetworkManager.startNetwork();
// Starting the connectivity monitor
new ConnectivityMonitor(NetPeerGroup);
// Stopping the network asynchronously
ConnectivityMonitor.TheExecutor.schedule(
new DelayedJxtaNetworkStopper(
MyNetworkManager,
"Click to stop " + Name_RELAY,
"Stop"),
0,
TimeUnit.SECONDS);
} catch (IOException Ex) {
System.err.println(Ex.toString());
} catch (PeerGroupException Ex) {
System.err.println(Ex.toString());
}
}
}