Hallo,
ich versuche mich zur Zeit an einem Serverprogramm, welches zur Kommunikation den
Indy(10) TIdCmdTCPServer verwendet.
Die Beispielprogramme von
hier habe ich mir auch schon angesehen.
Leider verstehe ich einige Zusammenhänge nicht so ganz:
Beim Client:
Wann verwendet man GetResponse, und wann SendCmd?
So wie ich das verstanden habe, sendet GetResponse eine Anfrage und liest das Ergebnis so lange in eine Stringliste ein, bis ein "Ende"-Zeichen gefunden wird. Außerdem wird geprüft, ob der gesendete Code stimmt. SendCmd ruft GetResponse auf. Kommt das hin?
Das Auslesen der Antwort kann ja mit LastCmdResult.Text, IOHandler.Capture(TStrings) oder Socket.ReadLn erfolgen. Was ist der Unterschied?
Server:
Wozu braucht man ReplyTexts? In dem Beispiel sind sie zwar eingetragen, aber verwendet werden sie wohl nicht.
Wie werden die Codes verwendet? Code 200 ist z.B. zur Begrüßung. Kann man sie frei vergeben? Wo müssen sie eingetragen werden? Unter NormalReply -> Code?
Für die Antwort zum Client scheint es ja auch wieder mehrere Möglichkeiten zu geben: Asender.Response, ASender.Reply.Text oder ASender.Context.Connection.IOHandler.WriteLn(). Unterschiede?
Antwortet der Server immer dem jeweiligen Client, oder könnte er die Antwort auch an einen anderen liefern?
Sorry für die vielen Fragen, aber die
Indy-Doku macht mich noch wahnsinnig.