TINIs TCP/IP Applikasjoner

Disse sidene er en del av dokumentasjonen som Ola Lie utarbeidet da han foreleste faget IP- og webteknologi ved Høgskolen i Østfold i 2005.Websidene ble revidert i 2007.

HTTP

Vi har allerede stiftet bekjentskap med HTTP protokollen og klassebibliotekt com.dalsemi.tininet.http som ble brukt av webtjener programmet HelloWeb.java. HelloWeb applikasjonen sender kun fa seg statiske websider (filer). Dersom vi ønsker at innholdet skal kunne endre seg, må vi åpne en ServerSocket og skrive ut innholdet når en klient oppretter en forbindelse:

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

public class HvorMyeErKlokka {

    static String htmlKodeTopp =
        "<HTML>\n"+
        " <HEAD>\n"+
        " <TITLE>TINIs klokke</TITLE>\n"+
        " </HEAD>\n"+
        " <BODY>\n"+
        " Klokka er ";
    static String htmlKodeBunn =
        " </BODY>\n"+
        "</HTML>";
 

    public static void main(String[] args) {

        try {
            Date now; String klokka;
            ServerSocket srv = new ServerSocket(80);
   
            while (true) {
                now = new Date();
                klokka = Integer.toString(now.getHours())+":"+
                        Integer.toString(now.getMinutes())+":"+
                        Integer.toString(now.getSeconds())+".\n";
                Socket mySocket = srv.accept();
                BufferedWriter bw = new BufferedWriter(
                new OutputStreamWriter(mySocket.getOutputStream()));
                bw.write(htmlKodeTopp + klokka + htmlKodeBunn);
                bw.flush();
                bw.close();
                mySocket.close();
            } // slutt while

        }
        catch (IOException e) {
            e.printStackTrace();
            System.out.println(e.toString());
        } // slutt try/catch

    } // slutt metode main

} // slutt klasse HvorMyeErKlokka

 

http

 

http

Ønsker du å kjøre programmet ovenfor, kan du laste ned filen HvorMyeErKlokka.zip (HvorMyeErKlokka.java og build.xml). Følg framgangsmåten som er beskrevet i Ant og TiniAnt.

En annen mulighet er å benytte en mer avansert web tjener som støtter Java Servlets for web programmering på tjener siden. For eksempel TiniHttpServer, som er gratis, og demonstrert på siden TINI Servlets og MVC Design Pattern.

FTP

Vi har fra før vært innom bruken av FTP.  FTP tjeneren er vanligvis bare implementert i kommandoskall som slush, og vi kan starte og stoppe ftp med startserver -f og stopserver -f:

ftp

Hver gang TINI starter leses fila /etc/.startup som er satt til å starte ftp tjeneren. .startup filen er blitt laget for oss, og vi kan godt endre på innholdet:

ftp

TINIs slush inneholder også en ftp klient med følgende kommandoer:

ftp

FTP protokollen ligger i pakke com.dalsemi.shell.server.ftp:

ftp

Telnet

Vi har fra før vært innom bruken av Telnet.  Telnet tjeneren er vanligvis bare implementert i kommandoskall som slush, og vi kan starte og stoppe telnet med startserver -t og stopserver -t. Telnet tjeneren startes automtisk samtidig med TINI på grunn av setenv TelnetServer enable direktivet i .startup fila som ble beskrevet ovenfor. Telnet protokollen ligger i pakken com.dalsemi.shell.server.telnet. Slush inneholder ingen telnet klient.

DHCP

Under arbeid.

DNS

Under arbied.