Hallo!
ich bräuchte dringend jemanden, der sich mit dem Bertreff (Betriebssysteme - systemnahes Programmieren) auskennt und eine Anforderung in C programmieren kann. Natürlich gegen Bezahlung!
Folgende Aufgabe wäre zu programmieren:
Ziel
• Kommunikation 2-er Prozesse über Sockets.
• UNIX Daemon Konzept
Übungsaufgabe
Schreiben Sie eine Server Applikation zum Übertragen von Files über einen TCP Socket. Das Programm
erhält als Argument einen Filenamen, sowie den Port der abzuhören ist. Das File soll auf dem
angegebenen Port zur Verfügung stehen. Bei einer eingehenden Verbindung durch einen Client soll
das File vom Server an den Client übertragen werden. Der Server soll als debugging Information die
IP-Adresse sowie die Port Nummer des Clients auf stdout ausgeben. Nach erfolgter Übetragung soll
der Server auf eine neue Verbindung warten. Starten Sie Server und Client von 2 unterschiedlichen
Terminals. Verwenden Sie die Linux Programme nc bzw. telnet als Clients um Ihren Server zu testen.
Aufruf:
./server port-nummer input-file
nc 127.0.0.1 port-nummer, oder
telnet 127.0.0.1 port-nummer
Zusatzaufgabe
Erweitern Sie den Server, sodass nun mehrere Übertragungen gleichzeitig möglich sind. Für jede
eingehende Verbindung soll ein eigener Prozess geforked werden der den Datentransfer übernimmt,
und am Ende des Transfers terminiert. Leiten Sie in den Kindprozessen jeweils stdout und stderr
auf ein File um (server.pid.log).
Der Server soll durch Auswertung des Signals SIGCHLD die exit Stati seiner Kinder abholen. Loggen
Sie im Signalhandler mit wenn ein Kind terminiert.
Hinweise:
• Das Signal wird (unter anderem) den accept Befehl unterbrechen. Man muss dafür sorgen
dass dieser Zustand erkannt, und der Befehl in diesem Fall wieder gestartet wird (errno auf
EINTR überprüfen).
• Setzen Sie das Flag SO_REUSEADDR des Server Sockets, damit nach einem Abbruch des
Servers mit Ctrl-C dieser wieder am selben Port gestartet werden kann (Fehlermeldung
“bind: Address already in use“).
Wenn wer interesse hat, bitte eine kurze Mail an hrban@web.de mit Zeitaufwand und Kosten.
Wäre sehr dringend....
Danke