# Klausuraufgabe Netzwerkprogrammierung  !Hilfe!



## duuugle (5. Jul 2007)

Die vordefinierte Klasse EventSource hat eine Methode
int waitForNextEvent()
pie Methode wartet auf das nächste Ereignis und kehrt zurück, sobald es eingetreten ist.
Der Rückgabewert ist eine Zahl zwischen 0 und 255. Ereignisse treten in unbestimmten Zeitabständen ein.

```
import java.util.*; 
class EventSource { 
int waitForEvent() Random r = newRandom(); 
try 
Thread.sleep(r.nextlnt(lOOO)) ; 
catch (Exception e) {} return r.nextlnt(255);
```

Das Programm Main wird mit einem Rechnernamen als Kommandozeilenargument (z.b. java Main localhost) aufgerufen. Es startet zwei Threads, einen Recei veThread und einen ResponseThread. 

```
class Main 
public static void main(String ... args) { SendThread send = new SendThread(args); send. starL() ; 
 

 
ReceiveThread receive 
receive.start() ; 
 

new ReceiveThread();
```

Der ReceiveThread lauscht auf Nachrichten vom SendThread von einem anderen host und gibt die Zahl aus,
die er erhalten hat. 
Hinweis: Die Methode getlnetAddress der Klasse Socket liefert den Remote¬Host, mit dem dieser Socket verbunden ist.
Der SendThread erzeugt ein Objekt EventSource und wartet in einer Endlosschleife auf Ereignisse.
Immer wenn ein Ereignis eintritt, gibt er eine Meldung mit dem Ereignis (hier einer Zahl) aus.
Dann öffnet er eine Netzwerkverbindung zu dem im Argument gelieferten Rechner und teilt diesem das Ereignis mit


Kann mir jemand helfen, wie ich das löse. Weis nicht ganz wie ich das machen soll.

Ist ne alte Klausuraufgabe und *am Mittwoch ist Klausur*.


----------



## Murray (5. Jul 2007)

Die geposteten Code-Stücke sind ziemlicher Humbug - wenn die exakt so in der Aufgabenstellugn stehen sollten, sehe ich schwarz....

Ich kannte es bisher so, dass eine Aufgabe eine konkrete Fragestellung beeinhaltet - hier finde ich nur eine Beschreibung  von Dingen, von denen nicht so recht klar ist, was Randbedingug und was Aufgabe ist. Vermutlich ist eine Implementierung von SendThread und ReceiveThread gefragt.

Ich verstehe das so:
SendThread: erzeugt ein EventSource-Objekt und ruft dessen waitForEvent-Methode auf. Sobald die Methode zurückkehrt, macht der Thread eine Socket-Verbidnung zum anderen Rechner auf und schickt das Ergebnis; danach wird wieder waitForEvent aufrufen usw.
ReceiveThread: wartet auf eine ankommende Socketverbindung; kommt eine Verbindung zustande, so wird eine Zahl vom Socket gelesen und ausgegeben; danach wird auf die nächste Verdindung gewartet


----------



## duuugle (5. Jul 2007)

Mehr stand da leider nicht. 
Ja so versteh ich das auch. 
Kann mir das jemand Programmieren, das ich mal so eine fertige Lösung habe, denn wir dürfen alles mitnehmen.


----------



## waldwichtel (5. Jul 2007)

siehe Forenregeln


----------



## Murray (5. Jul 2007)

duuugle hat gesagt.:
			
		

> Kann mir das jemand Programmieren, das ich mal so eine fertige Lösung habe, denn wir dürfen alles mitnehmen.


Mit der Einstellung kanst du höchstens noch versuchen, das unter "Aufgabe und Gesuche" zu posten (wenn nicht ein Mod so nett ist, diesen Thread zu verschieben). Wenn du eine entsprechende Entlohnung anbietest, findet sich vielleicht jemand - darauf wetten würde ich allerdings nicht.

Und weg...


----------

