Die Popularität des Netzwerks hat Serverprogramme ausführlich verwendet.
Einige Leute sagen, wenn Sie einen Server entwerfen möchten, müssen Sie VC verwenden, um ihn zu entwerfen. Verwenden Sie nicht die großen, die Delphi mitgebracht haben. Ich werde es dir unten erzählen. Auf diese Weise verwenden Sie APIs, um Server zu entwerfen, was sich nicht wesentlich von VCs unterscheidet.
Verwenden Sie Delphi, um Serverprogramme zu entwerfen. Wenn Ihre Benutzerverbindungen weniger als 1.000 sind und die Menge der verarbeiteten Daten nicht groß ist, können Sie den Nachrichtenmodus des Formulars verwenden, um den Server zu entwickeln. Server. Ich schlage vor, dass jeder den vollständigen Portmodus nicht sicherstellen kann, da Sie nicht sicherstellen können, dass sich die Anzahl der Benutzer nicht ändert. , was später weniger Wartung gewährleisten kann.
Stellen Sie nun vor, worauf Sie bei der Entwicklung eines Delphi -Servers achten müssen:
1 Verwenden Sie keine Zeichenfolgenvariablen in Ihrem Programm
Dies wurde auch während des tatsächlichen Entwicklungsprozesses entdeckt. Vernunft nach der Überprüfung.
2 Verwenden Sie Schnelle Verschlüsselungsalgorithmen wie XOR -Verschlüsselung oder DES -Verschlüsselung
Der Server muss beim Übergeben an den Client verschlüsselt werden, aber welche Art von Verschlüsselungsalgorithmus sollte verwendet werden? Verwenden Sie keine Algorithmen, die viele Operationen erfordern, z. B. RSA und andere Algorithmen. . Sie können auch RSA verwenden, um Chiffretexte zu verschlüsseln. Dies veranlasst jedoch, dass der Server langsam verarbeitet wird. Wenn Sie viel Verarbeitung begegnen, ist es für den Server einfach, den Server abzulehnen.
3 Verwenden Sie die ursprüngliche ADO -Funktion, um eine Verbindung zur Datenbank herzustellen
Serverprogramme werden normalerweise mit Datenbanken kombiniert. Es kann direkt mit den entsprechenden ADO -Funktionen erfolgen. Hauptsächlich, weil Serverprogramme und Datenbanken normalerweise relativ einfache Vorgänge sind und nicht sehr kompliziert sind. Verwenden Sie also einfach den ursprünglichen Ado -Modus. Dies reduziert auch die durch ADO -Kontrollen verursachten Probleme.
4. Verwenden Sie mehr "Pools"
Während des Designprozesses des Servers müssen Sie eine große Anzahl von Variablen unterstützen. Und es ist anfällig für Probleme. Versuchen Sie, Variablen während des Entwurfsprozesses nicht zu erstellen und zu veröffentlichen. Dies kann die Laufgeschwindigkeit des Programms beschleunigen und Konflikte verringern. Wie nutze ich die Pool -Technologie?
5 Fähigkeit, Zeiger zu verwenden
Wenn Sie mit dem Zeigerbetrieb nicht vertraut sind, können Sie fast nie einen effizienten Server entwerfen.
Hier ist ein Beispiel.
var
A, B: Array [1..8] von Byte;
I: Ganzzahl;
Resultbuffer: array [1..max] von byte;
Beginnen
für i: = 1 bis sizeof (puffer) div 8 tun
Beginnen
Move (Buffer [(i-1)*8+1], a, 8);
Des (a, b, true);
Move (b, resultbuffer [(i-1)*8+1], 8);
Ende;
Ende
Schauen wir uns den obigen Code an und die Idee ist sehr klar, nämlich den Des Decryption -Algorithmus zu verwenden, um ihn in B zu entschlüsseln, und dann wieder in den Ergebnisbuffer einzulegen.
Wenn Sie Hinweise beherrschen, wird Ihre Effizienz erheblich verbessert
var
A, B: PBYTE;
I: Ganzzahl;
Resultbuffer: array [1..max] von byte;
Beginnen
für i: = 1 bis sizeof (puffer) div 8 tun
Beginnen
A: = @Buffer [(i-1)*8+1];
B: = @ResultBuffer [(I-1)*8+1]
Des (a^, b^, true);
Ende;
Ende
Schauen wir uns den obigen Code an.
6 Verwenden Sie WSaSend, WSARECV und andere Winsocket 2 -Funktionen öfter, verwenden Sie keine Sendefunktionen, RePORT -Funktionen
Dies hängt hauptsächlich davon ab, auf welchem System Ihr Server ausgeführt wird.
7. Verwenden Sie Thread Pool -Vorgänge rational
Ein effizienter Server muss Thread Pooling -Technologie verwenden. Ich persönlich denke, wenn Sie die Thread-Pooling-Technologie verwenden möchten, müssen Sie sich mit den zeitaufwändigsten Vorgängen wie Datenbankabfragevorgängen befassen.
8 Wenn der Server das Konzept von "Pool" verwendet, gibt es ein anderes Problem.
Ich benutze Pools auf viele Arten wie Threadpools, Datenpools usw. Wie kann man den Pool zuordnen, wenn Daten eintreffen? Ich werde es Ihnen hier nicht sagen und in Zukunft einen speziellen Artikel über den Pool schreiben. Detaillierte Beschreibung der Verwendung des Pools. Sie können auch selbst darüber nachdenken.
9 Verwenden effizienter String Manipulationsfunktionen
Da der Server eine große Anzahl von Zeichenfolgen ausführen muss, wird es zeitaufwändig sein, wenn Sie die von Delphi bereitgestellten Funktionen verwenden, um zu arbeiten. Sei hilfreich für dich.
10 Optimieren Sie Ihre SQL -Abfrageanweisungen
Einerseits können Sie die SQL -Abfrageanweisungen optimieren, um die betriebliche Effizienz zu verbessern, und andererseits können Sie auch gespeicherte Verfahren verwenden, um die betriebliche Effizienz zu verbessern. (Sie müssen sich den Inhalt der Datenbank für dieses Wissen ansehen, und ich werde nicht darüber sprechen, wie ich sie hier optimieren soll.)
Die obige Einführung ist meine praktische Erfahrung, und es ist möglicherweise nicht in Ordnung. Wenn es einen besseren Ansatz gibt, kann es auch diskutiert werden.