Популярность сети сделала серверные программы широко использованными.
Некоторые люди говорят, что если вы хотите разработать сервер, вы должны использовать VC для его разработки. , не используйте большие, принесенные Delphi. Я скажу вам ниже. Таким образом, вы используете API для проектирования серверов, которые не сильно отличаются от венчурных капиталистов.
Используйте Delphi для разработки серверных программ. Если ваши пользовательские подключения составляют менее 1000 человек, а объем обработки данных не является большим, вы можете использовать режим сообщения формы для разработки сервера. сервер Я предлагаю, чтобы все лучше всего использовать полный порт, потому что вы не можете гарантировать, что количество пользователей не изменяется. , что может обеспечить более позднее обслуживание.
Теперь представите, на что вам нужно обратить внимание при разработке сервера Delphi:
1 Не используйте строковые переменные в вашей программе
Это также было обнаружено во время реального процесса разработки. Причина после проверки его.
2 Используйте алгоритмы быстрого шифрования, такие как шифрование XOR или DES -шифрование
Сервер должен быть зашифрован при передаче его клиенту, но какой тип алгоритма шифрования следует использовать? Не используйте алгоритмы, которые требуют много операций, таких как RSA и другие алгоритмы. Полем Вы также можете использовать RSA для шифрования шифровых шифров, но это приведет к тому, что сервер будет медленно обрабатывать, и если вы столкнетесь с большим количеством обработки, серверу легко отменить сервер.
3 Используйте исходную функцию ADO для подключения к базе данных
Серверные программы обычно объединяются с базами данных. Это может быть сделано напрямую, используя соответствующие функции ADO. Главным образом потому, что серверные программы и базы данных обычно являются относительно простыми операциями и не очень сложны. Так что просто используйте оригинальный режим ADO. Это также уменьшает проблемы, вызванные контролем ADO.
4. Используйте больше «бассейнов»
Во время процесса проектирования сервера вы должны поддерживать большое количество переменных. И это склонно к проблемам. Постарайтесь не создавать и выпустить переменные во время процесса проектирования. Это может ускорить скорость работы программы и уменьшить конфликты. Как использовать технологию пула?
5 Опыт в использовании указателей
Если вы не знакомы с операцией указателя, вы почти никогда не сможете разработать эффективный сервер.
Вот пример.
вар
A, B: массив [1..8] байта;
я: целое число;
ResultBuffer: массив [1..max] байта;
Начинать
для i: = 1 к размеру (буфер) div 8 do
Начинать
Переместить (буфер [(i-1)*8+1], a, 8);
DES (A, B, True);
Перемещение (B, ResultBuffer [(I-1)*8+1], 8);
конец;
конец
Давайте посмотрим на приведенный выше код, и эта идея очень ясна, то есть использование алгоритма DES DeCryption, чтобы расшифровать его в B, а затем поместить его в результат.
Если вы опытны в указателях, ваша эффективность будет значительно улучшена
вар
A, B: Pbyte;
я: целое число;
ResultBuffer: массив [1..max] байта;
Начинать
для i: = 1 к размеру (буфер) div 8 do
Начинать
a: = @buffer [(i-1)*8+1];
b: = @ResultBuffer [(i-1)*8+1]
Des (a^, b^, true);
конец;
конец
Давайте посмотрим на приведенный выше код.
6 Используйте функции Wsasend, WSARECV и другие функции WinSocket 2, не используйте функции отправки, Recv
В основном это зависит от того, какую систему работает ваш сервер.
7. Используйте операции пула потоков рационально
Эффективный сервер должен использовать технологию объединения потоков. Я лично думаю, что если вы хотите использовать технологию объединения потоков, вы должны иметь дело с наиболее трудоемкими операциями, такими как операции запроса базы данных.
8 Если сервер использует концепцию «пула», есть другая проблема.
Я использую пулы разными способами, такими как пулы потоков, пулы данных и т. Д. Когда приходят данные, как выделить пул? Я не расскажу вам здесь, и я напишу специальную статью о бассейне в будущем. Подробное описание того, как использовать бассейн. Вы также можете подумать об этом сами.
9 Использование эффективных функций манипуляции с строками
Поскольку сервер должен запускать большое количество строк, он будет трудоемким, если вы используете функции, предоставленные Delphi для работы. Будьте полезны для вас.
10 Оптимизируйте ваши заявления SQL -запроса
С одной стороны, вы можете оптимизировать операторы запросов SQL для повышения эффективности работы, а с другой стороны, вы также можете использовать хранимые процедуры для повышения эффективности работы. (Вам нужно посмотреть на содержание базы данных для этих знаний, и я не буду говорить о том, как оптимизировать его здесь.)
Вышеупомянутое введение - мой практический опыт, и все в порядке. Если есть лучший подход, его также можно обсудить.