From 613d3b2ff40f6ded7e982ffea22533e49c3b24ab Mon Sep 17 00:00:00 2001 From: josh Date: Mon, 27 Oct 2008 22:24:46 +0000 Subject: [PATCH] updated ChatClient.java, added ChordClient.java git-svn-id: svn://anubis/gvsu@218 45c1a28c-8058-47b2-ae61-ca45b979098e --- cs656/lab3/ChatClient.java | 3 ++ cs656/lab3/ChordClient.java | 105 ++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 cs656/lab3/ChordClient.java diff --git a/cs656/lab3/ChatClient.java b/cs656/lab3/ChatClient.java index 24925d7..f3f8283 100644 --- a/cs656/lab3/ChatClient.java +++ b/cs656/lab3/ChatClient.java @@ -340,6 +340,9 @@ public class ChatClient } } } + + // Load the Chord properties files + PropertiesLoader.loadPropertyFile(); } private static void usage() diff --git a/cs656/lab3/ChordClient.java b/cs656/lab3/ChordClient.java new file mode 100644 index 0000000..a484bb7 --- /dev/null +++ b/cs656/lab3/ChordClient.java @@ -0,0 +1,105 @@ +/** + * Some sample OpenChord code. See OpenChord manual and javadocs for more detail. + * @author Jonathan Engelsma + */ + +import java.net.InetAddress; +import java.net.MalformedURLException; +import de.uniba.wiai.lspi.chord.data.URL; +import de.uniba.wiai.lspi.chord.service.*; +import de.uniba.wiai.lspi.chord.service.impl.*; + +import java.util.*; +import java.io.Serializable; + +public class ChordClient +{ + private Chord myChord; + + public Chord chord() + { + return myChord; + } + + public ChordClient(String masterHost, boolean master) + { + try + { + if (master) + createNetwork(masterHost); + else + joinNetwork(masterHost); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + public void createNetwork(String host) + { + System.out.println("Creating Chord network on \"" + host + "\""); + String protocol = URL.KNOWN_PROTOCOLS.get(URL.SOCKET_PROTOCOL); + URL localURL = null; + try + { + localURL = new URL( protocol + "://" + host + ":4242/"); + } + catch (MalformedURLException e) + { + throw new RuntimeException(e); + } + + myChord = new ChordImpl(); + + try + { + myChord.create(localURL); + } + catch (ServiceException e) + { + throw new RuntimeException("Error: Could not create DHT!", e); + } + + } + + public void joinNetwork(String host) + + { + System.out.println("Joining Chord network on \"" + host + "\""); + String protocol = URL.KNOWN_PROTOCOLS.get(URL.SOCKET_PROTOCOL); + URL localURL = null; + try + { + localURL = new URL(protocol + "://" + InetAddress.getLocalHost().getHostAddress() + ":4243/"); + } + catch (MalformedURLException e) + { + throw new RuntimeException(e); + } + catch (Exception ex) + { + throw new RuntimeException(ex); + } + + URL bootstrapURL = null; + try + { + bootstrapURL = new URL( protocol + "://" + host + ":4242/"); + } + catch (MalformedURLException e) + { + throw new RuntimeException (e); + } + myChord = new ChordImpl(); + try + { + myChord.join(localURL , bootstrapURL); + } + catch (ServiceException e) + { + throw new RuntimeException("Error: Could not join DHT!", e); + } + + } +}