La popularidad de la red ha hecho que los programas del servidor sean ampliamente utilizados.
Algunas personas dicen que si desea diseñar un servidor, debe usar VC para diseñarlo. , no use los grandes traídos por Delphi. Te lo diré a continuación. De esta manera, usa API para diseñar servidores, que no son muy diferentes de los VC.
Use Delphi para diseñar programas de servidor. Si sus conexiones de usuario son menos de 1,000 y la cantidad de datos procesados no es grande, puede usar el modo de mensaje del formulario para desarrollar el servidor. servidor. Sugiero que todos son mejores para usar el modo de puerto completo, porque no puede asegurarse de que el número de usuarios no cambie. , que puede garantizar más tarde menos mantenimiento.
Ahora presente lo que necesita prestar atención al desarrollar un servidor Delphi:
1 No use variables de cadena en su programa
Esto también se descubrió durante el proceso de desarrollo real. Razón después de revisarlo.
2 Use algoritmos de cifrado rápido, como el cifrado XOR o el cifrado de DES
El servidor debe estar encriptado al pasarlo al cliente, pero ¿qué tipo de algoritmo de cifrado se debe usar? No use algoritmos que requieran muchas operaciones, como RSA, y otros algoritmos. . También puede usar RSA para encriptar los texto cifrados, pero esto hará que el servidor se procese lentamente, y si encuentra mucho procesamiento, es fácil para el servidor rechazar el servidor.
3 Use la función ADO original para conectarse a la base de datos
Los programas del servidor generalmente se combinan con bases de datos. Se puede hacer directamente utilizando las funciones ADO correspondientes. Principalmente porque los programas de servidor y las bases de datos suelen ser operaciones relativamente simples y no son muy complicados. Así que usa el modo ADO original. Esto también reduce los problemas causados por los controles de ADO.
4. Use más "piscinas"
Durante el proceso de diseño del servidor, debe admitir una gran cantidad de variables. Y es propenso a los problemas. Intente no crear y liberar variables durante el proceso de diseño. Esto puede acelerar la velocidad de carrera del programa y reducir los conflictos. ¿Cómo usar la tecnología de la piscina?
5 competentes en el uso de punteros
Si no está familiarizado con la operación del puntero, casi nunca podrá diseñar un servidor eficiente.
Aquí hay un ejemplo.
varilla
A, B: matriz [1..8] de byte;
I: entero;
Resultbuffer: array [1..max] de byte;
Comenzar
para i: = 1 a sizeOf (buffer) div 8 do
Comenzar
mover (búfer [(i-1)*8+1], a, 8);
Des (a, b, verdadero);
mover (b, resultadobuffer [(i-1)*8+1], 8);
fin;
fin
Echemos un vistazo al código anterior y la idea es muy clara, que es usar el algoritmo de descifrado DES para descifrarlo en B, y luego volver a colocarla en el resultado de resultados.
Si es competente en consejos, su eficiencia mejorará enormemente
varilla
A, B: pbyte;
I: entero;
Resultbuffer: array [1..max] de byte;
Comenzar
para i: = 1 a sizeOf (buffer) div 8 do
Comenzar
a: = @buffer [(i-1)*8+1];
B: = @Resultbuffer [(i-1)*8+1]
Des (a^, b^, verdadero);
fin;
fin
Echemos un vistazo al código anterior.
6 Use Wsasend, WSARECV y otras funciones de Winsocket 2 con mayor frecuencia, no use Send, Funciones de Recv
Esto depende principalmente de qué sistema se ejecute su servidor.
7. Use las operaciones de la piscina de hilos racionalmente
Un servidor eficiente debe usar la tecnología de agrupación de subprocesos. Personalmente, creo que si desea utilizar la tecnología de agrupación de subprocesos, debe lidiar con las operaciones más que requieren mucho tiempo, como las operaciones de consulta de bases de datos.
8 Si el servidor usa el concepto de "grupo", hay otro problema.
Utilizo piscinas de muchas maneras, como piscinas de subprocesos, grupos de datos, etc. Cuando llegan los datos, ¿cómo asignar el grupo? No te diré aquí, y escribiré un artículo especial sobre el grupo en el futuro. Descripción detallada de cómo usar el grupo. También puedes pensarlo tú mismo.
9 Uso de funciones eficientes de manipulación de cadenas
Debido a que el servidor debe ejecutar una gran cantidad de cadenas, llevará mucho tiempo si usa las funciones proporcionadas por Delphi para operar. Sea útil para usted.
10 Optimice sus declaraciones de consulta SQL
Por un lado, puede optimizar las declaraciones de consulta SQL para mejorar la eficiencia operativa y, por otro lado, también puede usar procedimientos almacenados para mejorar la eficiencia operativa. (Debe observar el contenido de la base de datos para este conocimiento, y no hablaré sobre cómo optimizarlo aquí).
La introducción anterior es mi experiencia práctica, y puede que no esté bien. Si hay un mejor enfoque, también se puede discutir.