- Registriert
- Feb. 2009
- Beiträge
- 906
Hallo Programmierer,
meinen Urlaub wollte ich mal nutzen, um mich ein wenig weiterzubilden und zwar im Bereich Programmierung in C#. Das Ziel ist ein kleiner Server, der von einem kleinen Clienten ein paar Befehle annehmen kann (echo, time, stop...). Nichts großes, sondern einfach.
Schnell ist der Server geschrieben und er tut eigentlich auch, was er soll. Jedoch bin ich dank Microsoft auf ein Problem gestoßen:
In diesem Beispiel von MSDN (http://msdn.microsoft.com/de-de/library/bb979208.aspx) kann sich ein Client verbinden, dieser wird als Klassenobjekt auch einfach in die ArrayList gepackt, jedoch: Wenn der Client aus irgendeinem Grund die Verbindung abbricht, schlägt der StreamReader fehl (was logisch ist) und beendet das Programm.
So kommen 2 Fragen auf:
1. Wie erkenne ich am besten, ob ein Client die Verbindung abgebrochen oder beendet hat
2. Speichertechnisch sehe ich da ein Problem bei der ArrayList. Alle Verbindungen werden einfach in die Liste gepackt und wenn sie "sterben", bleiben ihre Leichen einfach darin und verbrauchen weiter Speicher. Wie löst man dieses Problem am besten?
Danke schon mal für alle Antworten.
meinen Urlaub wollte ich mal nutzen, um mich ein wenig weiterzubilden und zwar im Bereich Programmierung in C#. Das Ziel ist ein kleiner Server, der von einem kleinen Clienten ein paar Befehle annehmen kann (echo, time, stop...). Nichts großes, sondern einfach.
Schnell ist der Server geschrieben und er tut eigentlich auch, was er soll. Jedoch bin ich dank Microsoft auf ein Problem gestoßen:
In diesem Beispiel von MSDN (http://msdn.microsoft.com/de-de/library/bb979208.aspx) kann sich ein Client verbinden, dieser wird als Klassenobjekt auch einfach in die ArrayList gepackt, jedoch: Wenn der Client aus irgendeinem Grund die Verbindung abbricht, schlägt der StreamReader fehl (was logisch ist) und beendet das Programm.
So kommen 2 Fragen auf:
1. Wie erkenne ich am besten, ob ein Client die Verbindung abgebrochen oder beendet hat
2. Speichertechnisch sehe ich da ein Problem bei der ArrayList. Alle Verbindungen werden einfach in die Liste gepackt und wenn sie "sterben", bleiben ihre Leichen einfach darin und verbrauchen weiter Speicher. Wie löst man dieses Problem am besten?
Danke schon mal für alle Antworten.