Verwenden von Arrays, Zeichenfolgen und Zeigern
Das Doctor-Programm (siehe Beispiele rpc doctor im \ Platform Software Development Kit \ (SDK)) ist ein gutes Beispiel für eine Anwendung, die die entwurfsspezifischen Vor- und Abkungen im Zusammenhang mit Array- und Zeichenfolgenattributen \ veranschaulicht. Das Doctor-Programm ist eine kleine Beispielversion eines bekannteren Programms, Eliza, das in den 1960er Jahren von dem Ki-Forscher Beim MIT entwickelt wurde. Das Programm imitiert eine -Struktur, indem es einen einfachen Musterabgleich verwendet, um auf Eingaben in natürlicher Sprache zu reagieren.
Das Eliza-Programm hat die folgende Sitzung aufgezeichnet.
| Benutzer | Eliza |
|---|---|
| Die Menschen sind alle gleich. | In welcher Weise? |
| Sie verfingen uns immer etwas oder etwas anderes. | Können Sie sich ein bestimmtes Beispiel denken? |
| Nun, mein Freund hat mich hierherbekommen lassen. | Ihr Freund hat Sie hierherbekommen. |
| Er sagt, dass ich einen großen Teil der Zeit gedrückt habe. | Ich muss leider hören, dass Sie geschwenkst sind. |
| Das stimmt, ich bin nicht zufrieden. | Sind Sie der Meinung, dass die Hier-kommen-KOMMEN-Hilft Ihnen dabei hilft, nicht unerlässlich zu sein? |
| Ich ben benhilfe. so viel scheint sicher zu sein. | Was bedeutet es für Sie, wenn Sie Hilfe erhalten? |
| Vielleicht könnte ich lernen, mich mit meiner Familie aus dem Weg zu machen. | Erzähle mir mehr über deine Familie. |
| Meine Frau kümmert sich um mich. | Wer sie sich in Ihrer Familie um Sie kümmern? |
| Mein Vater. | Ihr Pater. |
| Sie sind in irgendeiner Weise wie mein Frau. | Welche Ähnlichkeit sehen Sie? |
Das Doctor-Programm kann in clientseitige und serverseitige Anwendungen aufgeteilt werden. Die Clientseite fordert den Patienten zur Eingabe auf und zeigt die Antwort des Patienten an. Die Serverseite verarbeitet die Patienteneingabe und generiert die Antwort des Patienten. Dies ist ein klassisches Beispiel für eine Client-Server-Anwendung: Der Client ist für die Benutzerinteraktion verantwortlich, während der Server die umfangreiche Rechenlast verarbeitet. Es werden nicht viele Daten an die -Funktion übergeben und von ihr zurückgegeben, aber da die Daten eine erhebliche Menge an Verarbeitung erfordern können, verarbeitet der Server sie.
Das Doctor-Programm verwendet ein Zeichenarray für die Eingabe und gibt ein anderes Zeichenarray als Ausgabe zurück. In der folgenden Tabelle sind vier Möglichkeiten zum Übergeben von Zeichenarrays zwischen Client und Server sowie die Attribute und Funktionen aufgeführt, die zum Implementieren der einzelnen Ansätze erforderlich sind.
| Vorgehensweise | Attribute oder Funktionen |
|---|---|
| Arrays mit gezählten Zeichen | [size _ ist ] , length [ _ ist ] , [ ref] |
| Mit Stubs verwaltete Zeichenfolgen | [string, ] [ ref, ] midl user _ _ allocate on server |
| Mit Stubs verwaltete Zeichenfolgen | [string, ] [ unique, ] midl user _ _ allocate on client and server |
| Funktion, die eine Zeichenfolge zurückgibt | [unique] |
Innerhalb der Einschränkungen, die diesen Attributkombinationen zugeordnet sind, gibt es alternative Möglichkeiten, ein Zeichenarray vom Client an den Server zu senden und ein anderes Zeichenarray vom Server an den Client zurück zu geben.
In den folgenden Themen werden die Entwurfsgebilde zwischen den verschiedenen Schnittstellen veranschaulicht, die diese Parameter verwalten können.