Question | Answer |
Wie sieht das TCP / IP Protokollstack aus? | |
Was ist ein Socket? | Socket ist ein Endpunkt in der Kommunikationsverbindung zwischen zwei kommunikationswilligen Prozessen |
Welche zwei Socketarten gibt es? | 1. Streamsockets (auch TCP-Sockets genannt) 2. Datagramsockets (auch UDP-Sockets genannt) |
Was braucht es für die Herstellung einer Verbindung mit Sockets? | - Host-Adresse (IP-Adresse) - Port-Nummer Durch die IP-Adresse und den Port wird ein Dienst auf einem Rechner eindeutig identifiziert. Auf einem Rechner können mehrere Sockets gleichzeitig offen sein |
Wie sieht die Datenübertragung mit Sockets grafisch aus? | |
Was sind TCP-Sockets? | Stellen Verbindungen zwischen zwei Programmen (Prozessen) her, welche sowohl auf einem gleichen als auch auf unterschiedlichen Rechnern ausgeführt werden können |
Welches sind die Phasen der Datenübertragung? | 1. Aufbau der Verbindung 2. Übertragung von Daten 3. Abbau der Verbindung |
Wie werden die Daten übertragen? | Daten, welche übertragen werden, werden in einen Datenstrom geschrieben, und am Zielort aus dem Datenstrom (in gleicher Reihenfolge) gelesen |
Wie sieht die konkrette Implementierung von TCP-Sockets grafisch aus? | |
Wie funktioniert der Aufbau des Sockets Serverseitig? | - Die Server-Anwendung muss einen Server-Socket erzeugen - Der Server-Socket wird an einen vorgegebenen Port gebunden - Der Server-Socket wartet, bis ein Client eine Verbindung aufbauen möchte |
Wie funktioniert der Aufbau des Sockets Clientseitig? | - Die Client-Anwendung erzeugt einen Client-Socket und versucht, eine Verbindung zum Server aufzubauen - Wenn die Verbindung vom Server akzeptiert wurde, können Server und Client Daten austauschen |
Welche Voraussetzung muss gegeben sein, damit Client und Server miteinander kommunizieren können? | Für den Austausch von Daten müssen Server und Client eine "gleiche Sprache" sprechen (Protokoll) |
Wie sieht der Aufbau einer Verbindung mittels Sockets in einem Sequenzdiagramm aus? | |
Welche zwei Klassen stehen zur Verwendung von Sockets zur Verfügung? | 1. java.net.ServerSocket (Serverseitig) 2. java.net.Socket (Clientseitig) |
Welches sind die Konstruktoren des ServerSockets? | - ServerSocket () throws IOException - ServerSocket (int port) throws IOException - ServerSocket (int port, int backlog) throws IOException |
Welches sind die wichtigsten Methoden des ServerSockets? | - void bind (SocketAdress endpoint) throws IOException - Socket accept () throws IOException - void close () throws IOException - InetAddress getInetAdress () - int getLocalPort () |
Welches sind die Konstruktoren des Sockets Clientseitig? | - Socket ( ) - Socket ( InetAdress adress, int port) throws IOException - Socket ( String host, int port) throws IOException |
Welches sind die wichtigsten Methoden des Sockets Clientseitig? | - void bind (SocketAdress bindpoint ) throws IOException - void close ( ) throws IOException - void connect (SocketAdress endpoint, int timeout ) throws IOException - InetAdress getInetAdress ( ) - InputStream getInputStream ( ) throws IOException - OutputStream getOutputStream ( ) throws IOException - int getPort ( ) |
Wie wird ein ServerSocket erzeugt? | |
Wie kann an ServerSocket einen ClientSocket holen, wenn eine Verbindung gewünscht ist? | |
Wie kann der Serversocket Informationen über den Client ausgeben? | |
Wie kann nun Serverseitig ein InputStream vom Client holen? | |
Wie kann der Server nun die vom Client zugestellten Daten ausgeben? | |
Wie kann der Client mittels Socket eine Verbindung zum Serber aufbauen? | |
Wie lautet die Benachrichtigung des Clients, das die Verbindung hergestellt ist? | |
Wie kann der Client nun den OutputStream holen? | |
Wie kann der Client eine Meldung an den Server senden? | |
Wie kann die Verbindung seitens Clients geschlossen werden? | |
Was ist der Unterschied zwischen TCP-Sockets und UDP-Sockets? | UDP-Sockets sind nicht verbindungsorientiert |
Was sind UDP- Sockets? | - Daten werden in Pakete geschrieben - Datenpakete könne maximal 8 KB gross sein - Grössere Nachrichten müssen in der Anwendung segmentiert bzw. reassembliert werden - Die Ankunft von Datenpaketen wird nicht bestätigt - Es kann passieren, dass manche Datenpakete nicht ans Ziel kommen |
Welche zwei Klassen stehen bei UDP-Sockets zur Verfügung? | 1. java.net.DatagramSocket (stellt den Socket zur Verfügung) 2. java.net.DatagramPacket (enthält die zu sendenden Daten) |
Welches sind die Konstruktoren des DatagramSocket? | - DatagramSocket( ) - DatagramSocket (int port) - DatagramSocket (int port, InetAddress iadr) |
Welches sind die wichtigsten Methoden des DatagramSocket? | - void bind (SocketAddres sadr) - void receive (DatagramPacket p) - void send (DatagramPacket p) - void disconnect ( ) |
Welches sind die Konstruktoren des DatagramPacket? | - DatagramPacket (byte[] buf, int length) - DatagramPacket (byte[] buf, int length, InetAddres address, int port ) |
Welches sind die wesentlichen Methoden des DatagramPacket? | - void setData (byte[] buf) - void setData(byte[] buf, int offset, int length) - byte[] getData ( ) - void setLength (int length) - int getLength ( |
Wie sieht der Code von UDP-Sockets serverseitig aus? | |
Wie sieht der Code von UDP-Sockets clientseitig aus? | |
Was ist ein Multicast? | Bei einem Multicast wird die Nachricht an eine Gruppe bzw. alle Mitglieder dieser Gruppe in einem Schritt gesendet |
Welche Klasse stellt Multicast zur Verfügung? | Für die Multicast-Kommunikation stellt Java die Klasse java.net.MulticastSocket zur Verfügung |
Welches sind die Konstruktoren des Multicast? | MulticastSocket(int port) |
Welches sind die wesentlichen Methoden des Multicast? | - void joinGroup(InetAddress multicastAddr) - void leaveGroup(InetAddress multicastAddr) - void send(DatagramPacket p) - void receive(DatagramPacket p) |
Wie sieht der Code beim Sender beim Multicast aus? | |
Wie sieht der Code beim Empfänger beim Multicast aus? | |
Was sind die Vorteile von Sockets? | - sehr gute Performance - Protokolle können frei nach Bedarf implementiert werden, wodurch Anpassungen bzw. Optimierungen möglich sind |
Was sind die Nachteile von Sockets? | - Sockets eignen sich für reine Datenübertragung - Sockets sind nur die Schnittstelle zur Transportschicht - Bieten keine Unterstützung für Kommunikationssteuerung und Datendarstellung - Protokolle müssen auf der Anwendungsebene implementiert werden um Kommunikationspartner zu finden und Austausch von Nachrichten zu steuern - Eigenschaften der Transportschicht sind zu berücksichtigen (TCP/ UDP) - Programmierung relativ aufwendig und fehleranfällig |
Auf der Server-Seite kann es nötig sein, mehrere Ausführungseinheiten (Threads) laufen zu lassen, um mehrere Clients "gleichzeitig" bedienen zu können. Dazu muss die Arbeit auf der Serverseite geteilt werden. Wie geschieht dies? | der Hauptthread kümmert sich um Annahme der Anfrage, wonach die "Konversation" mit Clients von " Worker-Threads" übernommen wird |
Wie viele Worker-Thread werden pro Client-Anfrage erzeugt? | Pro Client-Anfrage wird ein Worker-Thread erzeugt, der sich um die Kommunikation mit dem Client eigenständig kümmert bzw. die Leistung für den Client erbringt |
Wie sieht der Ablauf zum Erzeugen von Worker-Threads aus (Teil 1)? | - Die Hauptklasse implementieren, in der der ServerSocket erzeugt und die gesamte Steuerung implementiert wird - Diese Klasse könnte "Server" genannt werden - Die Worker-Thread-Klasse implementieren, deren Instanzen die Leistungen für die Clients erbringen |
Wie sieht der Ablauf zum Erzeugen von Worker-Threads aus (Teil 2)? | - Den Server (Instanz der Hauptklasse) starten und eine Instanz der Klasse ServerSocket erzeugen - In einer Schleife die Methode accept auf der ServerSocket-Instanz aufrufen: der ServerSocket wartet, bis eine Anfrage kommt |
Was geschieht wenn eine Anfrage kommt? | Wenn eine Anfrage kommt - wird eine Worker-Thread-Instanz erzeugt und seine Ausführung gestartet - Je nach Kontext, können dem Konstruktor der Worker-ThreadKlasse auch Parameter übergeben werden (Referenz auf das Socket-Objekt, das von der Methode accept zurückgeliefert wurde, Referenz auf In- oder OutputStream des Sockets usw.) |
Wie sieht der Ablauf zum Erzeugen von Worker-Threads aus (Teil 3)? | - Ab dem Moment übernimmt die Worker-Thread-Instanz die Konversation mit dem Client - Der ServerSocket "geht zurück" und wartet auf die neue Anfrage, indem auf der ServerSocket-Instanz erneut die Methode accept aufgerufen wird - Das ganze wiederholt sich so lange, bis die ServerSocketInstanz aus der Schleife rauskommt (die Frage der Implementierung) |
Want to create your own Flashcards for free with GoConqr? Learn more.