import java.io.IOException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetSocketAddress;
import javax.swing.Timer;
import javax.swing.table.DefaultTableModel;
import java.net.UnknownHostException;
import uk.ac.ntu.n0521366.wsyd.libs.logging.TableModelHandler;
import uk.ac.ntu.n0521366.wsyd.libs.message.MessageLogRecord;
import uk.ac.ntu.n0521366.wsyd.libs.message.MessagePresence;
+import uk.ac.ntu.n0521366.wsyd.libs.message.MessageServerControl;
import uk.ac.ntu.n0521366.wsyd.libs.net.WSYD_SocketAddress.Protocol;
import uk.ac.ntu.n0521366.wsyd.libs.net.*;
*/
private static final String resourcePath = "/uk/ac/ntu/n0521366/wsyd/resources";
+ /**
+ * Readable/displayable name of this application
+ */
+ String _title;
+
/**
* The UDP listener address for incoming log messages
*/
* @see #initListeners()
*/
public ServerManagement() {
+ _title = "ServerManagement";
LOGGER.setLevel(Level.ALL);
initComponents();
_doLogging = true;
return _doLogging;
}
+ protected boolean UDPSend(NetworkMessage message) {
+ boolean result = false;
+
+ if (message != null) {
+ InetSocketAddress address = this._multicastServer.getTargetAddress(message.getTarget());
+ if (address != null) {
+ message.setSender("ServerManagement");
+ try {
+ byte[] dataSend = NetworkMessage.serialize(message);
+ DatagramPacket packetSend = new DatagramPacket(dataSend, dataSend.length);
+ // set target's remote host address and port
+ packetSend.setAddress(address.getAddress());
+ packetSend.setPort(address.getPort());
+
+ DatagramSocket socket = new DatagramSocket();
+ // acknowledge receipt
+ socket.send(packetSend);
+ System.err.println(MessageFormat.format("Sending packet for {0} to {1} ({3}:{4}) from {2}", message.getIntent(), message.getTarget(), message.getSender(), packetSend.getAddress().getHostAddress(), packetSend.getPort()));
+
+ result = true; // successful
+ } catch (IOException e) {
+ // TODO: serverSend() add IOException handler
+ e.printStackTrace();
+ }
+ }
+ }
+ return result;
+ }
+
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
private void gMenuServerSocialRestartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_gMenuServerSocialRestartActionPerformed
// TODO add your handling code here:
+ System.err.println("Requesting ServerSocial Restart");
+ MessageServerControl mc = new MessageServerControl(MessageServerControl.EXIT.NO , MessageServerControl.RESTART.YES);
+ NetworkMessage nm = NetworkMessage.createNetworkMessage("Control", "ServerSocial", mc);
+ nm.setSender("ServerLog");
+ UDPSend(nm);
+
}//GEN-LAST:event_gMenuServerSocialRestartActionPerformed
/**