net.sf.cscc.examples.simplesystem
Class Server

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--javax.swing.JFrame
                                |
                                +--net.sf.cscc.examples.simplesystem.Server

public class Server
extends javax.swing.JFrame
implements java.awt.event.ActionListener, DataEventReceivingObserver, CommunicationEventObserver

This class provides a server application, which demonstrates the usage of this client/server component. The server application allows to connect several clients on a on a specific port and send then some information about the user over the net. The data is sent by calling the method ServerConnectionManager.sendBroadCastEvent(DataEvent de) which sends the data event to all connected clients. To send a data event to one specific client the method ServerConnectionManager.sendDataEvent(DataEvent de, Object clientId) can be used.
Important for using the client/server component is the implementation of the methods receiveEvent(CommunicationEvent ce) and receiveEvent(DataEvent de) which allows to receive data and communication events from the client/server component. It allows to track all the data events and all the communication events.

Author
Silvio Meier

Copyright
Silvio Meier, Tobias Reinhard, 2003

History
2003-05-15 SM First Version.
2003-05-16 SM Comments and full implemented functionality.
2003-05-17 SM Comments corrected
2003-05-28 SM When pressing the disconnect button and
no selected item in the client list was selected
a null pointer exception was caused --> violating
a precondition, this bug is removed now.
Additional linebreak added when displaying a received message. 2003-06-10 SM Additional output, the client identification number is now also written to the output channel. 2003-06-10 SM ServerConnectionManager.dispose() method is now used to release consumed resources. 2004-12-13 SM Some cleaning of unused things. 2006-11-28 SM Comments revised.

Version
$Date: 2007/07/02 21:26:17 $, $Author: reode_orm $, $Revision: 1.2 $

See Also
Serialized Form

Inner classes inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Inner classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Inner classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static int PORT_NUMBER
          Specifies the TCP/IP port number which is used to connect to the server.
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Constructor Summary
Server()
          Constructor initializes the GUI of the server application and creates a ServerConnectionManager object for the communication with the clients.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          This method is called if one of the buttons of the GUI is pressed.
static void main(java.lang.String[] args)
          Starts the server application.
 void receiveEvent(CommunicationEvent ce)
          This interface method is called by objects of the CommunicationEventObservable class.
 void receiveEvent(DataEvent de)
          This interface method is called by objects of the communication component.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

PORT_NUMBER

public static final int PORT_NUMBER
Specifies the TCP/IP port number which is used to connect to the server.
Constructor Detail

Server

public Server()
Constructor initializes the GUI of the server application and creates a ServerConnectionManager object for the communication with the clients.
Pre
true
Post
true

Method Detail

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
This method is called if one of the buttons of the GUI is pressed. This causes an action event which causes the corresponding reaction of the server application.
Specified by:
actionPerformed in interface java.awt.event.ActionListener
Pre
true
Post
true
Parameters:
e - ActionEvent object which encapsulates the information about the event.


main

public static void main(java.lang.String[] args)
Starts the server application.
Pre
true
Post
true
Parameters:
args - String parameters of the application - not used.


receiveEvent

public void receiveEvent(DataEvent de)
This interface method is called by objects of the communication component. This class has to register at the serverConnectionManager object by calling the method ServerConnectionManager.addObserver(DataEventBaseObserver o).
Specified by:
receiveEvent in interface DataEventReceivingObserver
Pre
true
Post
true

See Also
DataEventObserver.receiveEvent()

receiveEvent

public void receiveEvent(CommunicationEvent ce)
This interface method is called by objects of the CommunicationEventObservable class. This is done by calling the method ServerConnectionManager.addObserver(CommunicationEventObserver o) for observing the communication events of the server.
Specified by:
receiveEvent in interface CommunicationEventObserver
Pre
true
Post
true
Parameters:
ce - CommunicationEvent which is delivered to the implementor of this interface (ie. the observer).



Copyright © 2003, Silvio Meier and Tobias Reinhard. All Rights Reserved.