[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Hinweise zu Blatt 8



Hallo allerseits,

nachdem es eine Reihe von Missverstaendnissen um das Wort "Multiplexing"
auf dem Aufgabenblatt gab, moechte ich nochmal darauf hiniweisen, dass
das hier _nichts_ mit Threads zu tun hat. Der Server soll gleichzeitig
viele Clients verwalten und von diesen Kommandos entgegennehmen koennen.

Der "select()"-Aufruf ermoeglichst genau das, ohne Threads verwenden
zu muessen (also nicht zu sehr an Java denken...;-). Siehe auch Kapitel
5.5 dazu im Skript (unter der Ueberschrift "Multiplexing").

Auch wenn das auf dem Aufgabenblatt nur in der Aufgabe 1 steht, braucht
man das fuer beide Aufgaben (hatte ich in der Uebung auch schon 
erwaehnt).

Und noch ein (eher allgemeiner Hinweis):
Man sollte sich zunaechst auf das wesentliche konzentrieren und nicht
an Details festbeissen. Es ist z.B. nicht ganz leicht hinzubekommen,
auch auf den Fall richtig zu reagieren, dass ein read()-Aufruf mehrere
Protokollzeilen auf einmal liefert oder vielleicht inkomplette Zeilen.

Also wuede ich empfehlen, erstmal davon auszugehen, dass jedes read()
immer eine Protokollzeile liefert (macht das ganze deutlich einfacher).
Wenn das funktioniert, kann man ueber die Sonderfaelle nachdenken, wenn
noch Zeit uebrig ist.

Und es hilft, Code aus der Vorlesung wiederzuverwenden (vor allen die
tcp_* Funktionen aus dem daytime[123]-Beispiel und nuetzliche Dinge wie
slist oder dstring).

Gruss
	Elmar

----------------------------------------------------------------------
Today is Pungenday, the 61st day of The Aftermath in the YOLD 3168
----------------------------------------------------------------------
136-"He wouldn't try that trick again!"

	(From the Canonical List of Famous Last Words)
----------------------------------------------------------------------