kramann.info
© Guido Kramann

Login: Passwort:










Informatik3
1 Vom_struct_zur_Klasse
..1.1 Vom_struct_zur_Klasse
..1.2 struct_Programm
..1.3 Klassen_Programm
..1.4 Offene_Fragen
..1.5 Historie
..1.6 Objektabstraktion
..1.7 OO_Kundenverwaltung
..1.8 Objektfaehigkeiten
..1.9 Formatierung
..1.10 Motivation
..1.11 Uebung1
..1.12 Uebung2
2 UML
..2.1 Volumenberechnung
..2.2 UML_Klassendiagramm
..2.3 Konstruktor
..2.4 Statische_Variable
3 Strings
..3.1 Klassenbibliotheken
..3.2 stringUML
..3.3 Uebung3
4 Initialisierungen
4 bluej
5 Zeiger_und_Arrays
..5.1 Zeiger
..5.2 Zeiger_und_Funktion
..5.3 Uebung4
6 Vererbung
..6.1 MesswerteUML
..6.2 MesswerteProgramm
..6.3 VererbungsProgramm
..6.4 Vector
..6.5 Uebung
7 Modifikatoren
..7.1 public_Vererbung
..7.2 protected_Vererbung
8 Listen_und_Templates
..8.1 Containertypen
....8.1.1 ListeUML
....8.1.2 ListeProgramm
..8.2 Templates
....8.2.1 Listentemplate
....8.2.2 STLvectorTemplate
..8.3 Uebung5
..8.4 Uebung6
..8.5 Uebung7
9 Java
..9.1 Uebung
..9.2 GettingStarted
..9.3 Animation
..9.4 Hybrid
..9.5 Threads
10 Delegation
11 LayoutProjekt
12 Fenster
13 Uebung
14 Zwischenprojekt
..14.1 Befehle
..14.2 Planung
..14.3 JNI
..14.4 JNIumsetzen
..14.5 Anwendungsklasse
..14.6 GUI01
..14.7 GUI02
15 Rasterlayout
..15.1 Bilder_Packages
..15.2 interfaces
..15.3 ArrayList
..15.4 clone
..15.5 Uebung
16 Nuetzliches
..16.1 Threads
..16.2 Animation
..16.3 RungeKutta
..16.4 Loesungsansatz
..16.5 Internetprogrammierung
....16.5.1 Codegenerierung
....16.5.2 PHP_Programmierung
....16.5.3 PHP_OOP
....16.5.4 Java
17 Algorithmen
..17.1 RungeKutta
..17.2 Loesungsansatz
..17.3 Evoopt
..17.4 Uebung12
..17.5 Uebung8_2014
..17.6 Ausdruecke
18 Uebung10
19 UML_ALT
..19.1 Flaechenberechnung
..19.2 UML_Flaechenberechnung
..19.3 Implementierung
..19.4 ListeUML
..19.5 ListenImplementierung
..19.6 Anwendung

16.5.4 Internetprogrammierung mit Java

16.5.4 Internet programming with Java (EN google-translate)

16.5.4 Programowanie w Internecie za pomocą Java (PL google-translate)

Das Schichtenmodell von TCP (Transmission Control Protocol)

The Layer Model of TCP (Transmission Control Protocol)

Model warstwowy TCP (Transmission Control Protocol)

  1. Verbindungsschicht
  2. Vermittlungsschicht
  3. Transportschicht
  4. Anwendungsschicht

In jeder Schicht werden Protokolle definiert, wie Daten zu übertragen sind. Protokolle der Schicht 4, der Anwendungsschicht sind beispielsweise HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol) oder SMTP (Simple Mail Transfer Protocol).

In each layer, protocols are defined as to how data is to be transmitted. Layer 4 protocols, the application layer, for example HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol) oder SMTP (Simple Mail Transfer Protocol).

W każdej warstwie zdefiniowane są protokoły dotyczące przesyłania danych. Protokoły warstwy 4, na przykład warstwa aplikacji HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol) lub oder SMTP (Simple Mail Transfer Protocol).

Das Versenden der Daten über das Internet erfolgt mittels aufeinander aufbauender Protokolle über die Schichten hinweg. Zu sendende Daten werden von der Anwendungsschicht an die Transportschicht übergeben. Gemäß dem TCP (Transmission Control Protocol) werden hier die zu sendenden Daten in Pakete aufgeteilt, mit einem Datenkopf versehen und an Schicht 2, der Vermittlungsschicht übergeben.

The data is sent over the Internet by means of successive protocols across the layers. Data to be sent is transferred from the application layer to the transport layer. According to the TCP (Transmission Control Protocol) here are the data to be sent in packets split, provided with a header and passed to layer 2, the network layer.

Dane są przesyłane przez Internet za pomocą kolejnych protokołów na warstwach. Dane do wysłania są przesyłane z warstwy aplikacji do warstwy transportowej. Zgodnie z protokołem TCP (Transmission Control Protocol) dane są przesyłane w pakietach Podzielone, dostarczone z nagłówkiem i przekazane do warstwy 2, warstwa sieciowa.

In der Schicht 2, der Vermittlungsschicht, ist das Protokoll IP (Internet Protocol) enthalten. In dieser Schicht wird den Datenpaketen ein IP-Header hinzugefügt, über den dann der Rechner identifiziert werden kann, an den die Daten geschickt werden sollen. Dann werden die Pakete weiter an die Schicht 1, der Verbindungsschicht übergeben.

Layer 2, the network layer, contains the IP (Internet Protocol) protocol. In this layer, an IP header is added to the data packets over which then the computer to which the data should be sent can be identified. Then the packets are passed on to layer 1, the link layer.

Warstwa 2, warstwa sieciowa, zawiera protokół IP (protokół internetowy). W tej warstwie nagłówek IP jest dodawany do pakietów danych, nad którymi następnie można zidentyfikować komputer, na który dane mają zostać wysłane. Następnie pakiety są przekazywane do warstwy 1, warstwy łącza.

Auf Schicht 1, der Verbindungsschicht, sitzt die Netzwerkkarte. Sie packt einen Daten-Rahmen um die Pakete.

On Layer 1, the link layer, sits the network card. She packs a data frame around the packages.

Na Warstwie 1 warstwa łącza znajduje się na karcie sieciowej. Pakuje ramkę danych wokół pakietów.

Auf der Empfängerseite findet dieser Vorgang in umgekehrter Reihenfolge satt. D.h. die Daten kommen auf Schicht 1 an und wandern nach entsprechendem Entpacken immer eine Schicht höher.

On the receiver side, this process is fed in reverse order. That the data arrive on layer 1 and migrate after appropriate unpacki always one shift higher.

Po stronie odbiornika proces ten jest podawany w odwrotnej kolejności. że dane docierają do warstwy 1 i migrują po odpowiednim rozpakowan zawsze jedna zmiana wyższa.

UDP

UDP

UDP

Auf der Transportschicht Ebene (Schicht 3) kann alternativ das TCP (Transmission Control Protocol) oder das UDP (User Datagram Protocol) verwendet werden.

Alternatively, at the transport layer level (layer 3) TCP (Transmission Control Protocol) oder das UDP (User Datagram Protocol) be used.

Alternatywnie, na poziomie warstwy transportowej (warstwa 3) TCP (Transmission Control Protocol) lub UDP (User Datagram Protocol) być używane.

Der Vorteil von TCP ist, dass über Fehlersummen fehlerhafte Übertragungen von Paketen erkannt und diese erneut angfragt werden können. Außerdem ist gewährleistet, dass die Pakete in der richtigen Reihenfolge empfangen werden, in der sie gesendet wurden. TCP ist ein Verbindungsorientiertes Protokoll.

The advantage of TCP is that over error totals erroneous transfers of Packets can be recognized and queried again. It also ensures that the packages are in the right place Order in which they were sent. TCP is a connection-oriented protocol.

Zaletą TCP jest to, że w przypadku błędu sumuje błędne transfery Pakiety mogą być ponownie rozpoznawane i odpytywane. Zapewnia również, że pakiety są we właściwym miejscu Porządek, w którym zostały wysłane. TCP jest protokołem zorientowanym na połączenie.

UDP besitzt keine Kontrolle über auftretende Fehler und die Paketreihenfolge. Das Protokoll ist entsprechend einfacher und damit auch schneller. UDP ist ein verbindungsloses Protokoll.

UDP has no control over errors and packet order. The protocol is correspondingly simpler and therefore faster. UDP is a connectionless protocol.

UDP nie ma kontroli nad błędami i kolejnością pakietów. Protokół jest odpowiednio prostszy, a przez to szybszy. UDP jest protokołem bezpołączeniowym.

Deshalb wird TCP auch hauptsächlich zur Übermittlung von Internetseiten benutzt: Die Vorgänge hier stellen keine höheren Anforderungen an die Übertragungsgeschwindigkeit, müssen aber in der Regel vollkommen korrekt übertragen werden (Beispiel: Daten für eine Bestellung oder Flugbuchung über das Internet.)

Therefore, TCP is also used mainly for the transmission of Internet pages: The processes here do not make higher demands on the Transmission speed, but usually have to be perfect be transferred correctly (example: data for an order or Flight booking via the Internet.)

Dlatego TCP jest również używany głównie do transmisji stron internetowych: Procesy tutaj nie stawiają większych wymagań Prędkość transmisji, ale zazwyczaj musi być doskonała być poprawnie przesłane (przykład: dane do zamówienia lub Rezerwacja lotu przez Internet.)

Werden aber beispielsweise Filme oder Audiodaten direkt über das Internet geschickt (Streaming), so macht es nichts, wenn in den übertragenen Daten kleinere Fehler auftauchen. Jedoch sollte gewährleistet sein, dass die Übertragungsgeschwindigkeit den Anforderungen des Mediums entspricht. Hier bietet es sich eher an UDP zu verwenden.

However, for example, films or audio data directly over the Internet sent (streaming), so it does not matter if minor errors appear in the transmitted data. However, it should be ensured that the transmission speed meets the requirements of the medium. Here it is more like to use UDP.

Jednak na przykład filmy lub dane audio bezpośrednio nad Internet wysyłany (streaming), więc nie ma znaczenia, czy drobne błędy pojawiają się w przesyłanych danych. Należy jednak zapewnić prędkość transmisji spełnia wymagania medium. Tutaj jest bardziej prawdopodob używać UDP.

IP, DNS und Portnummer

IP, DNS and port number

IP, DNS i numer portu

Zur Identifikation eines Netz-Rechners benötigt dieser eine IP-Adresse. Dies ist eine aus vier 8-Bit-Zahlen zusammengesetzte Kennung. Es gibt IP-Adressen der Klassen A, B und C.

To identify a network computer, this requires an IP address. This is an identifier composed of four 8-bit numbers. There are IP addresses of classes A, B and C.

Aby zidentyfikować komputer sieciowy, wymaga to adresu IP. Jest to identyfikator złożony z czterech liczb 8-bitowych. Istnieją adresy IP klas A, B i C.

  • Klasse A nutzt die oberen 8 Bit zur Netzwerkkennung und den Rest als Rechneradresse, 0.0.0.0 - 127.255.255.255.
  • Klasse B nutzt die oberen 16 Bit zur Netzwerkkennung und den Rest als Rechneradresse, 128.0.0.0 - 191.255.255.255.
  • Klasse C nutzt die oberen 24 Bit zur Netzwerkkennung und den Rest als Rechneradresse, 192.0.0.0 - 223.255.255.255.

Der Netzwerkadressbereich wird in einer Netzmaske mit Einsen maskiert. Klasse C-Beispiel: 170.19.0.33, Netzwerkmaske: 255.255.0.0

The network address range is masked in a netmask with ones. Class C Example: 170.19.0.33, Network Mask: 255.255.0.0

Zakres adresów sieciowych jest zamaskowany w masce sieci zawierającej je. Klasa C Przykład: 170.19.0.33, Maska sieci: 255.255.0.0

Ein DNS-Server (Domain Name Server) setzt die IP-Adressen in lesbare Namen und umgekehrt. Jeder Rechner kann sich selber als "localhost" oder als IP-Adresse 127.0.0.1 "sehen".

A DNS server (Domain Name Server) sets the IP addresses in readable names and vice versa. Each computer can see itself as localhost or as an IP address 127.0.0.1.

Serwer DNS (Domain Name Server) ustawia adresy IP w czytelnych nazwach i na odwrót. Każdy komputer może postrzegać siebie jako localhost lub jako adres IP 127.0.0.1.

Unter der selben IP-Adresse können mehrere Server ihren Dienst versehen. Sie können aber auf unterschiedlichen Datenkanälen, den so genannten Ports arbeiten. Portnummern können die ganzen Zahlen zwischen 0 und 65535 annehmen. Die Portnummern 0 bis 1023 sind weltweit eindeutig definiert. Beispiele:

Several servers can provide their service under the same IP address. But you can work on different data channels called ports. Port numbers can take the integers between 0 and 65535. The port numbers 0 to 1023 are clearly defined worldwide. Examples:

Kilka serwerów może świadczyć swoje usługi pod tym samym adresem IP. Ale możesz pracować na różnych kanałach danych zwanych portami. Numery portów mogą przyjmować liczby całkowite z przedziału od 0 do 65535. Numery portów od 0 do 1023 są wyraźnie zdefiniowane na całym świecie. Przykłady:

Port Service Beschreibung
7 echo Wiederholt eine Eingabe als Antwort
13 daytime liefert die Systemzeit eines Servers
21 FTP Übertragung von Dateien
80 HTTP Auslieferung von Internetseiten

Tabelle 16.5.4-1: Feste Portzuordnungen verschiedener Web-Services

Formulare

formulation

sformułowanie

Die wohl bekannteste Möglichkeiten, Daten mit einem Server auszutauschen, besteht in der Verwendung von Formularen. Diese werden in einer Webseite eingebettet und erlauben es die eingetragenen Formulardaten an einen Server zu schicken. Dieser liefert daraufhin eine neue Version der ursprünglichen Webseite aus, z.B. ergänzt mit Daten aus einer Datenbank oder nach einem Login mit nun freigeschalteten Daten. Formulardaten werden über das HTTP-Protokoll geschickt. Beispiel: Login-Formular auf dieser Webseite.

Probably the best known ways to exchange data with a server, consists in the use of forms. These are in o Embedded website and allow the registered form data to send to a server. This then delivers a new version of the original website, e.g. supplemented with data from a database or after a log with now released data. Form data is sent via the HTTP protocol. Example: Login form on this website.

Prawdopodobnie najlepiej znane sposoby wymiany danych z serwerem, polega na użyciu formularzy. Są w jedn Wbudowana strona internetowa i zezwól na zarejestrowanie danych formularza wysłać na serwer. To dostarcza nową wersję oryginalnej strony internetowej, na przykład uzupełnione danymi z bazy danych lub po zalogowan z teraz opublikowanymi danymi. Dane formularza są wysyłane za pośrednictwem protokołu HTTP. Przykład: formularz logowania na tej stronie.

Java

Java

Jawa

Die Java-API bietet Internetverbindungen auf verschiedenen Abstraktionsebenen. D.h. es gibt in den einzelnen Library-Klassen Methoden, die elementare Dinge umsetzen, wie eine Netzwerkverbindung aufbauen, aber auch solche, die auf einem sehr hohen Abstraktionslevel stehen und die darunter liegenden Vorgänge verbergen, wie z.B. eine Methode eines auf einem anderen Rechner liegenden Objektes zu benutzen (RMI - Remote Method Invocation). Beispiele:

The Java API provides Internet connections at various abstraction levels. That There are methods in the individual library classes that are elementa Implement things like building a network connection, but also those that build on a very high level of abstraction and the ones below Hide operations such as a method of lying on another comput Object to use (RMI - Remote Method Invocation). Example

Interfejs API języka Java udostępnia połączenia internetowe na różnych poziomach abstrakcji. że Istnieją metody w poszczególnych klasach bibliotek, które są elementar Implementuj takie rzeczy jak budowanie połączenia sieciowego, ale także te, które budują na bardzo wysokim poziomie abstrakcji i poniżej Ukryj operacje, takie jak metoda leżenia na innym komputer Obiekt do użycia (RMI - Remote Method Invocation). Przykład

  • Herunterladen einer Internetseite als String-Objekt.
  • Datenaustausch über UDP.
  • Simulation des Versendens von HTML-Formulardaten.
  • Einbinden entfernter Objekte und Benutzung derer Methoden (RMI).

Im folgenden sollen die diversen Techniken anhand kleiner Experimente erlernt werden.

The following are the various techniques based on small experiments be learned.

Poniżej przedstawiono różne techniki oparte na małych eksperymentach się nauczyć.

Experiment Nr.1 - Formulardaten verarbeiten

Experiment No.1 - process form data

Eksperyment nr 1 - dane dotyczące postaci procesu

Ein einfacher Weg, an einen Server zu kommen, ist die Möglichkeit einen XAMPP-Server zu installieren. Dies stellt eine funktionierende out-of-the-box-Lösung dar in der bereits ein Apache-Server, eine MySQL-Datenbank, sowie die Webprogrammiersprachen PHP und Perl funktionierend miteinander interagierend vorhanden sind.

An easy way to get to a server is the ability to install an XAMPP server. This represents a worki out-of-the-box solution in the already one Apache server, a MySQL database, and the web programming languages ​​PHP and Perl functioning interacting with each other.

Prostym sposobem na uzyskanie dostępu do serwera jest możliwość zainstalować serwer XAMPP. To reprezentuje działan gotowe rozwiązanie już w jednym Serwer Apache, baza danych MySQL i języki programowania PHP a Perl funkcjonuje w interakcji ze sobą.

Zu Experimentierzwecken kann man sich XAMPP aus dem Internet herunterladen und installieren und anschließend eine php-Internetseite in das Verzeichnis htdocs legen. Alle Seiten, die dort liegen, können nach Start des Servers übe Angabe der IP-Adresse und nachfolgend des Pfades ab htdocs von einem Client-seitigen Web-Browser abgerufen werden, sofern dies von dem Server erlaubt wird. Beispiel:

For experimentation XAMPP can be downloaded from the internet and then install a php website in the directory htdocs legen. All pages that are there can be used after the server is started IP address and subsequently the path from htdocs from a client-side Web browsers, if allowed by the server. Example:

Do eksperymentów XAMPP można pobrać z Internetu a następnie zainstaluj stronę php w katalogu htdocs legen. Wszystkie strony, które tam są, mogą być używane po uruchomieniu serwera Adres IP, a następnie ścieżka od htdocs od strony klienta Przeglądarki internetowe, jeśli zezwala na to serwer. Przykład:

Wir legen in htdocs ein Dokument test.html mit folgendem Inhalt:

We put in htdocs a document test.html with the following content:

Wprowadzamy do htdocs dokument test.html o następującej treści:

<html>
    <head>
    </head>
    <body>
        <h1>Dies ist die Internetseite test.html</h1>
        <br/> 
        <p>Senden Sie einen kurzen Text an test2.php:</p>
        <br/>
        <form action="http://localhost/test2.php" method="POST">
            Text senden: <input type="text" name="meintext" value=""/>
            Text abschicken: <input type="submit" value="go"/>
        </form>
    </body>
</html>

Code 16.5.4-1: Datei test.html in htdocs des XAMPP-Servers.

Wie am Code zu interpretieren ist, werden die gesendeten Daten Server seitig von einer PHP-Datei verarbeitet, die den Namen test2.php trägt (weitere Erläuterungen s. Vorlesung). Diese könnte so aussehen:

As is to be interpreted by the code, the data sent are server side by side PHP file that is named test2.php (for further explanation see lecture). This could look like this:

Zgodnie z interpretacją kodu, przesłane dane są serwerami obok siebie Plik PHP o nazwie test2.php (po dalsze objaśnienia patrz wykład). Może to wyglądać tak:

Datei test2.php in htdocs des XAMPP-Servers.

Bild 16.5.4-1: Datei test2.php in htdocs des XAMPP-Servers.

Experiment Nr.2 - Inhalt einer Internetseite mit Java abrufen

Experiment # 2 - Retrieve contents of an internet page with Java

Eksperyment nr 2 - Pobieranie zawartości strony internetowej za pomocą Java

Applets sind prädestiniert dazu Client-Aufgaben zu übernehmen, da sie selbst wiederum in Internetseiten eingebunden werden können. Ihre Verwendung unterliegt aber einigen Beschränkungen:

Applets are predestined to take on client tasks, as they themselves turn into Internet pages can be integrated. However, their use is subject to some limitations:

Aplety są predestynowane do wykonywania zadań klientów, ponieważ same się zmieniają Strony internetowe mogą być zintegrowane. Jednak ich użycie podlega pewnym ograniczeniom:

  • Applets können nicht direkt auf Dateien auf dem Server oder Client zugreifen.
  • Applets können nur mit dem Server kommunizieren, von dem aus sie ausgeliefert wurden.

Das folgende Applet liest den Quelltext der Seite http://www.kramann.info/test.html als String aus und stellt den Inhalt in einem Textfenster (TextArea) und als HTML-Seite (JTextPane) dar. Nach Aufbau der Verbindung wird ein Datenstrom geöffnet und der Inhalt der Seite heruntergeladen.

The following applet reads the source code of the page http://www.kramann.info/test.html as a string and returns the content in a text window (TextArea) and as an HTML page (JTextPane). After establishing the connection, a data stream is opened and the content of the page is downloaded.

Poniższy aplet odczytuje kod źródłowy strony http://www.kramann.info/test.html jako ciąg znaków i zwraca zawartość w oknie tekstowym (TextArea) i jako strona HTML (JTextPane). Po nawiązaniu połączenia zostaje otwarty strumień danych i pobierana jest zawartość strony.

import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.TextArea;
import java.awt.ScrollPane;
import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.text.html.HTMLEditorKit;

import java.io.*;
import java.net.*;

public class Htmlseite2 extends Applet
{
    public String uebergabe = "";

    public void init()
    {
    }

    public void start()
    {
        try
        {
            URL url = new URL("http://www.kramann.info/test.html");
            URLConnection verbindung = url.openConnection();
            verbindung.setUseCaches(false);
            DataInputStream datenstrom = new DataInputStream(verbindung.getInputStream());
            String zeile;
            while( (zeile=datenstrom.readLine()) != null )
                uebergabe+=zeile+"\n";
        }
        catch(Exception e)
        {
            uebergabe = e.toString();
        }
        setLayout(null);


        ScrollPane scrollpane = new ScrollPane();
        scrollpane.setBounds(0,0,600,200);
        TextArea textarea = new TextArea();
        textarea.setText(uebergabe); 
        scrollpane.add(textarea);
        add(scrollpane);

        ScrollPane scrollpane2 = new ScrollPane();
        scrollpane2.setBounds(0,220,600,200);
        JTextPane textarea2 = new JTextPane();
        textarea2.setEditorKit(new HTMLEditorKit());
        textarea2.setText(uebergabe); 
        textarea2.setContentType("text/html");
        scrollpane2.add(textarea2);
        setLayout(null);
        add(scrollpane2);
       
    }


    public static void main(String[] args)
    {
        Htmlseite2 hb = new Htmlseite2();
        hb.init();
        hb.start();
        hb.repaint();
        JFrame mF = new JFrame("Website laden");
        mF.getContentPane().add(hb);
        mF.pack();
        mF.setSize(630,430);
        mF.setLocation(10,10);
        mF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mF.setVisible(true);
    }
    
}

Code 16.5.4-2: Applet Htmlseite2.java

Damit das Applet in die vorliegende HTML-Seite eingebettet werden kann, muß in diese ein Applet-Tag in folgender Weise eingetragen werden:

In order for the applet to be embedded in the present HTML page, it must be included in this HTML page Applet tag can be entered in the following way:

Aby aplet mógł być osadzony na obecnej stronie HTML, musi on być zawarty na tej stronie HTML Znacznik Applet można wprowadzić w następujący sposób:

<applet code="Htmlseite2.class" width="700" height="450">
</applet>

Code 16.5.4-3: Applet-Tag für Htmlseite2.

Der Start dieses Applets mit dem appletviewer führt jedoch zu einem Fehler:

However, starting this applet with the appletviewer results in an error:

Jednak uruchomienie tego apletu za pomocą aplikacji appletviewer powoduje błąd:

  • java.security.AccessControlException: access denied ("java.net.SocketPermission" "www.kramann.info:80" "connect,resolve")

Mit anderen Worten: Einem Applet ist es nicht erlaubt eine fremde HTML-Seite zu laden (Sandboxprinzip).

In other words: An applet is not allowed to load a foreign HTML page (sandbox principle).

Innymi słowy: aplet nie może załadować obcej strony HTML (zasada piaskownicy).

Startet man das gleiche Programm aber als Applikation, so funktioniert es:

If you start the same program but as an application, it works like this:

Jeśli uruchamiasz ten sam program, ale jako aplikację, działa on tak:

Htmlseite2 als Applikation gestartet.

Bild 16.5.4-2: Htmlseite2 als Applikation gestartet.

Experiment Nr.3 - Laden von Bildern

Experiment no.3 - loading images

Eksperyment nr 3 - ładowanie obrazów

Beispielsweise Bilder einer USB-Kamera könnten zyklisch aufgefrischt werden und könnten über ein Thread von einem Client-seitigen Java-Programm geholt werden. Die Art der versendeten Daten kann über den so genannten MIME-Typ (Multipurpose Internet Mail Extension) bestimmt werden. Allerdings bietet die Klasse unmittelbar eine Methode an, die ein Bild über eine URL lädt:

For example, images of a USB camera could be refreshed cyclically and could be fetched via a thread from a client-side Java program. The type of data sent can be determined by the so-called MIME type (Multipurpose Internet Mail Extension). However, the class immediately offers a method that loads an image through a URL:

Na przykład obrazy kamery USB mogą być odświeżane cyklicznie i mogą być pobierane za pośrednictwem wątku z programu Java po stronie klienta. Typ wysyłanych danych można określić za pomocą tak zwanego typu MIME (Multipurpose Internet Mail Extension). Jednak klasa natychmiast oferuje metodę, która ładuje obraz za pomocą adresu URL:

import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.TextArea;
import java.awt.ScrollPane;
import java.awt.Image;
import java.net.URL;
import java.net.URI;
import javax.swing.JFrame;
import javax.swing.ImageIcon;
import java.awt.Toolkit;

public class Bildladen extends Applet
{
    ImageIcon img = null;
    Image bild = null;
    public String uebergabe = "";
    public byte[] bildbytes = null;
    public void start()
    {
        try
        {
            try
            {
                URL url = new URL("http://www.kramann.info/ch.png");
                Toolkit tk = Toolkit.getDefaultToolkit();             
                bild = tk.createImage(url);
                img = new ImageIcon(tk.createImage(bild.getSource()));
                repaint();
             }
            catch(Exception e)
            {
                System.out.println(e);
            }
        }
        catch(Exception e)
        {
        }
    }

    public void paint(Graphics g)
    {
        if(bild!=null)
            g.drawImage(bild, 0, 0, this); 
    }

    public static void main(String[] args)
    {
        Bildladen hb = new Bildladen();
        hb.init();
        hb.start();
        hb.repaint();
        JFrame mF = new JFrame("Website laden");
        mF.getContentPane().add(hb);
        mF.pack();
        mF.setSize(630,430);
        mF.setLocation(10,10);
        mF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mF.setVisible(true);
    }
}

Code 16.5.4-4: Applet Bildladen.java

Auch hier wird nicht erlaubt das Bild zu laden, wenn die Anwendung als Applet gestartet wird. Als Applikation funktioniert es:

Again, the image is not allowed to load when the application started as an applet. As an application it work

Ponownie, obraz nie może zostać załadowany, gdy aplikacja rozpoczęty jako aplet. Jako aplikacja dział

Fenster anch Start von Bildladen als Java-Applikation.

Bild 16.5.4-3: Fenster anch Start von Bildladen als Java-Applikation.