Added UDP listener
authorEddie <dev@fun2be.me>
Sun, 3 May 2015 10:33:20 +0000 (11:33 +0100)
committerEddie <dev@fun2be.me>
Sun, 3 May 2015 10:33:20 +0000 (11:33 +0100)
src/uk/ac/ntu/n0521366/wsyd/server/ServerSocial.java

index b4d65ee..0867364 100644 (file)
@@ -61,6 +61,7 @@ import uk.ac.ntu.n0521366.wsyd.libs.net.NetworkMessageEvent;
 import uk.ac.ntu.n0521366.wsyd.libs.net.NetworkServerUDPMulticast;
 import uk.ac.ntu.n0521366.wsyd.libs.net.WSYD_SocketAddress;
 import uk.ac.ntu.n0521366.wsyd.libs.net.NetworkMessageEventListener;
+import uk.ac.ntu.n0521366.wsyd.libs.net.NetworkServerUDP;
 
 /**
  * The main Social Network server.
@@ -125,6 +126,11 @@ public final class ServerSocial implements NetworkMessageEventListener {
     NetworkServerUDPMulticast _multicastServer;
     
     Timer _multicastAnnounce;
+    
+    WSYD_SocketAddress _udpServerSA;
+    
+    NetworkServerUDP _udpServer;
+   
 
     /**
      * Default constructor.
@@ -147,6 +153,11 @@ public final class ServerSocial implements NetworkMessageEventListener {
         _multicastServer.addNetworkMessageEventListener(this, "Neighbour");
         _multicastServer.execute();
         
+        _udpServerSA = new WSYD_SocketAddress(Network.IPv4_WILDCARD, Network.PORTS_CLIENT_CONTROL_FIRST, WSYD_SocketAddress.Protocol.UDP);
+        _udpServer = new NetworkServerUDP(_udpServerSA, "ServerSocial", LOGGER);
+        _udpServer.addNetworkMessageEventListener(this, "Control");
+        _udpServer.execute();
+        
         ActionListener multicastAnnounceActionListener = new ActionListener() {
             /**
              * Activated by timer events to send multi-cast neighbour announcements for the Log Service.
@@ -193,7 +204,7 @@ public final class ServerSocial implements NetworkMessageEventListener {
         // TODO: start() create TCP listener
         // TODO: start() create UDP Multicast group listener and broadcast adverts
         // wait for connections
-        int loopCount = 10;
+        int loopCount = 200;
         while (!ServerSocial.exitRequested && ! ServerSocial.restartRequested) {
             Thread.sleep(1000); // wait a second
             System.out.println("start() loop " + loopCount);
@@ -208,8 +219,9 @@ public final class ServerSocial implements NetworkMessageEventListener {
         {
             //TODO: Do something
         }*/
-        _multicastServer.cancel(true);
         _multicastAnnounce.stop();
+        _multicastServer.cancel(true);
+        _udpServer.cancel(true);
         
         result = writeMembers(_membersFile);
 
@@ -382,12 +394,14 @@ public final class ServerSocial implements NetworkMessageEventListener {
     @Override
     public void NetworkMessageReceived(NetworkMessageEvent event)
     {
+        System.err.println("Packet received.");
         //TODO: NetworkMessageReceived: Handle Messages
         NetworkMessage nm = event.getNetworkMessage();
         if (nm == null)
             return;
         //Exit or Restart?
-        if ("Neighbour".equals(nm.getIntent()))
+        System.err.println(nm.getIntent());
+        if ("Control".equals(nm.getIntent()))
         {
             String type = nm.getMessage().getMessageType();
                     if (type.equals(MessageServerControl.getType())) { // ServerControl