|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
Client
public class Client
Die Client-Klasse
Die Implementierung des Clients geschieht mit dieser Klasse. Jede Verbindung, die vom Client aufgebaut wird, erhält mittels den Thread-Implementierung eine eigene Instanz der Client-Klasse die den Daten versand ermöglicht. Von der Clientklasse ist es möglich mehrere Instanzen zu erstellen und dies auch für den parallelen Datei versand an verschiedene Empfänger. Dies wird in der ByteTaxi-Klasse realisiert.
Desweiteren implementiert die Klasse das Interface Runnable für die Threads.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class javax.swing.JFrame |
---|
javax.swing.JFrame.AccessibleJFrame |
Nested classes/interfaces inherited from class java.awt.Frame |
---|
java.awt.Frame.AccessibleAWTFrame |
Nested classes/interfaces inherited from class java.awt.Window |
---|
java.awt.Window.AccessibleAWTWindow |
Nested classes/interfaces inherited from class java.awt.Container |
---|
java.awt.Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component |
---|
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy |
Field Summary | |
---|---|
(package private) java.net.InetAddress |
addr
Enthaelt Netzwerkinformationen ueber den Clienten / localhost. |
(package private) java.lang.String |
antwort
Antwort vom Empfaenger wird gespeichert und anschliessend ausgewertet. |
(package private) javax.swing.JProgressBar |
bar
Eine Progressbar / Prozessbalken, die den Sendeprozess anzeigt. |
(package private) java.lang.String |
benutzer
Enthaelt den Benutzernamen aus dem System. |
(package private) java.io.BufferedReader |
br
Der BufferedReader bekommt den Charakterstrom vom InputStreamReader zugewiesen. |
(package private) java.io.BufferedWriter |
bw
Der BufferedWriter erhaelt den Charakterstrom vom OutputStreamWriter. |
(package private) java.lang.String |
dateiname
Der Dateiname wird aus dem FileChooser herausgelesen. |
(package private) boolean |
erfolg
Uepruefungsvariable fuer die Komplette Dateiuebertragung. |
(package private) javax.swing.JFileChooser |
fc
Ein Dateiauswahlfenster womit man die zu Sendende Datei auswaehlt. |
(package private) java.io.File |
file
Das File-Objekt, wird die Datei zugewiesen bekommen die zum Senden Vorbereitet wird. |
(package private) java.io.FileInputStream |
fis
Der FileInputStream erhaelt als Parameter ein File-Objekt, dieses liest er mittels diesem FileInputStream ein. |
(package private) java.lang.String |
host
Der Zielrechner wird durch Benutzereingabe, in host gespeichert. |
(package private) java.net.InetAddress |
hostinet
Enthaelt die Netzwerkinformationen ueber den Zielrechner. |
(package private) java.io.InputStream |
is
Der InputStream erhaelt den FileInputStream um in konfortabeler einzulesen. |
(package private) java.io.InputStreamReader |
isr
Der InputStream kriegt den Bytestrom vom InputStream, aus dem er dann einen Charakterstrom erzeugt. |
(package private) java.net.Socket |
meinSocket
Socket das eine Verbindung zum Zielrechner mit der Addresse von hostinet aufbaut. |
(package private) java.io.OutputStream |
os
Der OutputStream wird auf den OutputStream des Sockets gesetzt, beim Empfaenger wird dieser auf den InputStream den Sockets gesetzt. |
(package private) java.io.OutputStreamWriter |
osr
Der OutputStream wird dann wiederum in diesem OutputStreamWriter verpackt. |
private static long |
serialVersionUID
Routine Serialisierbarkeits ID. |
(package private) java.lang.String |
session_host
Der Zielrechner wird innerhalb einer Sitzung mit dem zuletzt benutzten vorgegeben. |
(package private) java.lang.String |
session_pfad
Der letzte benutzte Ordnerpfad wird innerhalb einer Sitzung gespeichert. |
(package private) java.io.InputStream |
socketis
InputStream der den InputStream vom eigenen Socket zugewiesen bekommt. |
(package private) java.io.OutputStream |
socketos
OutputStream wird auf den OutputStream vom eigenen Socket gesetzt. |
(package private) java.awt.TrayIcon |
trayIcon
Das TrayIcon Objekt, wird von der ByteTaxi-Klasse uebergeben. |
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 |
Fields inherited from interface javax.swing.WindowConstants |
---|
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE |
Fields inherited from interface java.awt.image.ImageObserver |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
---|---|
Client(java.awt.TrayIcon ico)
Konstruktor der Client-Klasse. |
Method Summary | |
---|---|
(package private) void |
clientinfo()
gibt Informationen ueber der Clienten / Localhost / Sender aus. |
void |
run()
Die run()-Methode, die eigentliche Main Methode dieser Klasse. |
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 |
Methods inherited from interface java.awt.MenuContainer |
---|
getFont, postEvent |
Field Detail |
---|
private static final long serialVersionUID
java.lang.String benutzer
java.net.InetAddress addr
java.net.InetAddress hostinet
java.net.Socket meinSocket
java.io.InputStream is
java.io.OutputStream os
java.io.FileInputStream fis
java.io.File file
java.io.InputStream socketis
java.io.InputStreamReader isr
java.io.BufferedReader br
java.io.OutputStream socketos
java.io.OutputStreamWriter osr
java.io.BufferedWriter bw
javax.swing.JFileChooser fc
javax.swing.JProgressBar bar
java.lang.String host
java.lang.String session_host
java.lang.String session_pfad
java.lang.String dateiname
java.lang.String antwort
boolean erfolg
java.awt.TrayIcon trayIcon
Constructor Detail |
---|
public Client(java.awt.TrayIcon ico)
bekommt das TrayIcon von der ByteTaxi Klasse uebergeben, setzt groesse und Position des JFrames fest, Layout wird bestimmt, TrayIcon werd der Lokalen Kopie zugewiesen und die JProgressBar wird eingesetzt.
Weitere Informationen sind in der Beschreibung der run()-Methode zulesen.
ico
- TrayIcon von der ByteTaxi KlasseMethod Detail |
---|
void clientinfo() throws java.net.UnknownHostException
java.net.UnknownHostException
public void run()
Die run()-Methode wird ausgefuert sobald der Thread von der ByteTaxi-Klasse gestartet wird. Mittels eines JOptionPane Eingabedialog wird der Host eingelesen. Dies kann ein Rechnername oder eine IP-Adresse sein. Es wird oefters ueberprueft ob der Thread gestoppt werden muss, und wird mit "meinThread.isInterrupted" geprueft. Der Socket wird initialisiert und eine Verbindung zum Host wird versucht aufzubauen. Falls keine moeglich ist, tritt der Fehler "UnknownHostException" ein. Nachdem eine Verbindung aufgebaut wurde, wird die zu sendende Datei mittels den FileChooser ausgewaehlt. Der Dateiname, die Dateigroesse werden, nachdem eine File-Instanz mittels den Dateinamen erstellt wird herausgelesen. Der Sender schreibt mittels dem OutputStream auf den InputStream des Empfaengers einen CharakterStrom bestehend aus Informationen, die den Dateinamen, die Dateigroesse und den Benutzername des Senders enthalten. Der Empfaenger entscheidet, ob er den Dateiempfang annimmt. Wenn dieser annimmt, sendet er "true" mittels Text. Dies wird mit der Antwort Variable analysiert und der eigentliche Dateiversand wird vorbereitet. Die neuen Input- und OutputStreams werden initialisiert. Der FileInputStream enthaelt den Dateistrom der Datei. Dieser wird mit dem InputStream in einen ByteStrom umgewandelt. Der OutputStream schreibt diesen ByteStrom auf den InputStream des Empfaengers. Durch die vorher herausgelesene Dateigroesse wird nach dem Versand ueberprueft, ob alle Bytes uebertragen wurden und ein entsprechender Ballon-Tip mit der Meldung angezeigt. Falls der Empfaenger den Dateiversand verweigert, sendet er ein "false" als Text und dies wird mit dem ersten InputStream gelesen und analysiert. Anschließend wird dann per JOptionPane ein Hinweis ausgegeben, dass der Empfaenger den Dateiempfang verweigert hat und der Thread wird mittels Interrupt beendet.
run
in interface java.lang.Runnable
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |