La popularité du réseau a rendu les programmes de serveurs largement utilisés.
Certaines personnes disent que si vous souhaitez concevoir un serveur, vous devez utiliser VC pour le concevoir. , n'utilisez pas les grands apportés par Delphi. Je vais vous dire ci-dessous. De cette façon, vous utilisez des API pour concevoir des serveurs, ce qui n'est pas très différent des VC.
Utilisez Delphi pour concevoir des programmes de serveur. Si vos connexions utilisateur sont inférieures à 1 000 et que la quantité de données traitées n'est pas grande, vous pouvez utiliser le mode de message du formulaire pour développer le serveur. serveur. Je suggère que tout le monde est le meilleur d'utiliser le mode de port complet, car vous ne pouvez pas vous assurer que le nombre d'utilisateurs ne change pas. , ce qui peut assurer plus tard moins d'entretien.
Introduisez maintenant ce à quoi vous devez prêter attention lors du développement d'un serveur Delphi:
1 N'utilisez pas de variables de chaîne dans votre programme
Cela a également été découvert lors du processus de développement réel. Raison après l'avoir vérifié.
2 Utiliser des algorithmes de chiffrement rapide tels que le cryptage XOR ou le cryptage DES
Le serveur doit être crypté lors du passage au client, mais quel type d'algorithme de chiffrement doit être utilisé? N'utilisez pas d'algorithmes qui nécessitent beaucoup d'opérations, tels que RSA et d'autres algorithmes. . Vous pouvez également utiliser RSA pour crypter des textes chiffrés, mais cela entraînera le processus lentement du serveur, et si vous rencontrez beaucoup de traitement, il est facile pour le serveur de rejeter le serveur.
3 Utilisez la fonction ADO originale pour se connecter à la base de données
Les programmes de serveur sont généralement combinés avec des bases de données. Cela peut être fait directement en utilisant les fonctions ADO correspondantes. Principalement parce que les programmes et les bases de données des serveurs sont généralement des opérations relativement simples et ne sont pas très compliquées. Alors utilisez simplement le mode ADO d'origine. Cela réduit également les problèmes causés par les contrôles ADO.
4. Utilisez plus de «piscines»
Pendant le processus de conception du serveur, vous devez prendre en charge un grand nombre de variables. Et c'est sujet aux problèmes. Essayez de ne pas créer et libérer des variables pendant le processus de conception. Cela peut accélérer la vitesse de course du programme et réduire les conflits. Comment utiliser la technologie de la piscine?
5 compétent dans l'utilisation de pointeurs
Si vous ne connaissez pas le fonctionnement du pointeur, vous ne pourrez presque jamais concevoir un serveur efficace.
Voici un exemple.
var
A, B: Array [1..8] d'octet;
I: entier;
ResultBuffer: Array [1..max] de l'octet;
Commencer
pour i: = 1 à la taille de (tampon) div 8 do
Commencer
déplacer (tampon [(i-1) * 8 + 1], a, 8);
DES (A, B, Vrai);
déplacer (b, resultBuffer [(i-1) * 8 + 1], 8);
fin;
fin
Jetons un coup d'œil au code ci-dessus et l'idée est très claire, qui consiste à utiliser l'algorithme DES de décryptage pour le déchiffrer en B, puis le remettre dans le résultat de résultat.
Si vous maîtrisez les pointeurs, votre efficacité sera considérablement améliorée
var
A, B: PBYTE;
I: entier;
ResultBuffer: Array [1..max] de l'octet;
Commencer
pour i: = 1 à la taille de (tampon) div 8 do
Commencer
a: = @buffer [(i-1) * 8 + 1];
b: = @ResultBuffer [(i-1) * 8 + 1]
DES (A ^, B ^, Vrai);
fin;
fin
Jetons un coup d'œil au code ci-dessus.
6 Utilisez WSASEND, WSARECV et autres fonctions Winsocket 2 plus souvent, n'utilisez pas d'envoi, Recv Fonctions
Cela dépend principalement du système sur lequel votre serveur fonctionne.
7. Utilisez des opérations de pool de threads rationnellement
Un serveur efficace doit utiliser la technologie de mise en commun de threads. Je pense personnellement que si vous souhaitez utiliser la technologie de mise en commun de threads, vous devez faire face aux opérations les plus longues, telles que les opérations de requête de base de données.
8 Si le serveur utilise le concept de "pool", il y a un autre problème.
J'utilise des pools à bien des égards, tels que des pools de threads, des pools de données, etc. Lorsque les données arrivent, comment allouer la piscine? Je ne vous dirai pas ici et j'écrirai un article spécial sur la piscine à l'avenir. Description détaillée de la façon d'utiliser la piscine. Vous pouvez également y penser vous-même.
9 en utilisant des fonctions de manipulation de chaînes efficaces
Étant donné que le serveur doit exécuter un grand nombre de chaînes, cela prendra du temps si vous utilisez les fonctions fournies par Delphi pour fonctionner. être utile pour vous.
10 Optimisez vos instructions de requête SQL
D'une part, vous pouvez optimiser les instructions de requête SQL pour améliorer l'efficacité opérationnelle, et d'autre part, vous pouvez également utiliser des procédures stockées pour améliorer l'efficacité opérationnelle. (Vous devez examiner le contenu de la base de données pour ces connaissances, et je ne parlerai pas de la façon de l'optimiser ici.)
L'introduction ci-dessus est mon expérience pratique, et cela ne va peut-être pas. S'il y a une meilleure approche, il peut également être discuté.