
Ich arbeite an einem C++-Programm, das auf einem Linux-Rechner läuft. Ich bin neu in der Client-Server-Architektur. Ich habe vor kurzem erfahren, dass das Programm, an dem ich arbeite, etwas namens Kontext verwendet, sodass der Client die verschiedenen Konfigurationen wie Zugriffsmodus usw. festlegen kann, um entsprechend mit dem Server zu kommunizieren.
Ich möchte wissen, ob es etwas ist, das spezifisch für mein Programm ist, oder ob es überall dasselbe Konzept ist. Und wird es als allgemeiner Begriff „Kontext“ bezeichnet oder hat es andere gebräuchliche Namen? Jede Anleitung in die richtige Richtung ist hilfreich.
Aktualisieren: Ich habe das Gefühl, dass das Konzept zu weit gefasst ist, um darauf zu antworten. Mich interessiert insbesondere, wie dieses Konzept in die Client-Server-Architektur passt.
Antwort1
Viele Protokolle verwenden einen Kontext, der mit den vom Client gesendeten Befehlen geändert wird. Wenn Sie einen FTP-, POP- oder IMAP-Server programmieren, enthält der Kontext, ob der Benutzer erfolgreich angemeldet ist und wer er ist. Der Befehl, der eine Liste von Dateien oder eine Liste von E-Mails anfordert, kann dann entweder eine Liste zurückgeben, je nachdem, wer angemeldet ist, oder diesen Befehl ablehnen.
Wenn Sie den Server mit einem Multithread-Programm implementieren, erhält jeder Thread ein Objekt als Parameter, das den Kontext enthält, den jeder Thread liest und aktualisiert. Wenn Sie den Server mit einem Multiprozessprogramm (wie Apache) programmieren, kann eine Reihe globaler Variablen (die sich zwischen den einzelnen Prozessen unterscheiden) den Kontext enthalten.