جعلت شعبية الشبكة برامج الخادم المستخدمة على نطاق واسع.
يقول بعض الأشخاص أنه إذا كنت ترغب في تصميم خادم ، فيجب عليك استخدام VC لتصميمه. ، لا تستخدم تلك الكبيرة التي جلبتها Delphi. سأخبرك أدناه. وبهذه الطريقة ، يمكنك استخدام واجهات برمجة التطبيقات لتصميم الخوادم ، والتي لا تختلف كثيرًا عن VCs.
استخدم Delphi لتصميم برامج الخادم. إذا كانت اتصالات المستخدم أقل من 1000 وكمية البيانات التي تمت معالجتها ، فيمكنك استخدام وضع الرسالة للنموذج لتطوير الخادم. الخادم. أقترح أن كل شخص أفضل لاستخدام وضع المنفذ الكامل ، لأنه لا يمكنك التأكد من أن عدد المستخدمين لا يتغير. والتي يمكن أن تضمن في وقت لاحق الصيانة.
قدم الآن ما تحتاج إلى الانتباه إليه عند تطوير خادم Delphi:
1 لا تستخدم متغيرات السلسلة في برنامجك
تم اكتشاف ذلك أيضًا خلال عملية التطوير الفعلية. بعد التحقق من ذلك.
2 استخدم خوارزميات التشفير السريع مثل تشفير XOR أو تشفير DES
يجب تشفير الخادم عند تمريره إلى العميل ، ولكن ما نوع خوارزمية التشفير التي يجب استخدامها؟ لا تستخدم الخوارزميات التي تتطلب الكثير من العمليات ، مثل RSA ، والخوارزميات الأخرى. . يمكنك أيضًا استخدام RSA لتشفير Ciphertexts ، ولكن هذا سيؤدي إلى معالجة الخادم ببطء ، وإذا واجهت الكثير من المعالجة ، فمن السهل على الخادم رفض الخادم.
3 استخدم وظيفة ADO الأصلية للاتصال بقاعدة البيانات
عادة ما يتم دمج برامج الخادم مع قواعد البيانات. يمكن القيام به مباشرة باستخدام وظائف ADO المقابلة. ويرجع ذلك أساسًا إلى أن برامج الخادم وقواعد البيانات تكون عادةً عمليات بسيطة نسبيًا وليست معقدة للغاية. لذلك فقط استخدم وضع ADO الأصلي. هذا يقلل أيضًا من المشكلات الناجمة عن ضوابط ADO.
4. استخدم المزيد من "التجمعات"
أثناء عملية تصميم الخادم ، يجب أن تدعم عدد كبير من المتغيرات. وهو عرضة للمشاكل. حاول عدم إنشاء متغيرات وإطلاقها أثناء عملية التصميم. هذا يمكن أن يسرع سرعة تشغيل البرنامج وتقليل النزاعات. كيفية استخدام تقنية البلياردو؟
5 يتقن في استخدام المؤشرات
إذا لم تكن على دراية بتشغيل المؤشر ، فلن تتمكن أبدًا من تصميم خادم فعال.
فيما يلي مثال.
var
A ، B: Array [1..8] of Byte ؛
أنا: عدد صحيح.
ResultBuffer: Array [1..max] of byte ؛
يبدأ
لأني: = 1 إلى حجم (عازلة) div 8 تفعل
يبدأ
Move (Buffer [(I-1)*8+1] ، a ، 8) ؛
DES (A ، B ، True) ؛
Move (B ، ResultBuffer [(I-1)*8+1] ، 8) ؛
نهاية؛
نهاية
دعونا نلقي نظرة على الكود أعلاه والفكرة واضحة للغاية ، وهي استخدام خوارزمية des decryption لفك تشفيرها في B ، ثم إعادةها إلى Resultbuffer.
إذا كنت بارعًا في المؤشرات ، فسيتم تحسين كفاءتك إلى حد كبير
var
A ، B: Pbyte ؛
أنا: عدد صحيح.
ResultBuffer: Array [1..max] of byte ؛
يبدأ
لأني: = 1 إلى حجم (عازلة) div 8 تفعل
يبدأ
a: = buffer [(i-1)*8+1] ؛
B: = ResultBuffer [(I-1)*8+1]
DES (A^، B^، True) ؛
نهاية؛
نهاية
دعنا نلقي نظرة على الكود أعلاه.
6 استخدم WSASEND و WSARECV وغيرها
يعتمد هذا بشكل أساسي على النظام الذي يعمل عليه الخادم الخاص بك.
7. استخدم عمليات تجمع الخيوط بعقلانية
يجب أن يستخدم الخادم الفعال تقنية تجميع مؤشرات الترابط. أنا شخصياً أعتقد أنه إذا كنت ترغب في استخدام تقنية تجميع مؤشرات الترابط ، فيجب عليك التعامل مع معظم العمليات التي تستغرق وقتًا طويلاً ، مثل عمليات استعلام قاعدة البيانات.
8 إذا كان الخادم يستخدم مفهوم "تجمع" ، فهناك مشكلة أخرى.
أستخدم حمامات السباحة بعدة طرق ، مثل تجمعات الخيوط ، ومجمعات البيانات ، إلخ. عند وصول البيانات ، كيفية تخصيص التجمع؟ لن أخبرك هنا ، وسأكتب مقالًا خاصًا عن المجموعة في المستقبل. وصف مفصل لكيفية استخدام حمام السباحة. يمكنك أيضًا التفكير في الأمر بنفسك.
9 باستخدام وظائف معالجة السلسلة الفعالة
نظرًا لأن الخادم يجب أن يدير عددًا كبيرًا من الأوتار ، فسيستغرق وقتًا طويلاً إذا كنت تستخدم الوظائف التي توفرها Delphi لتشغيلها. كن مفيدًا لك.
10 قم بتحسين بيانات استعلام SQL الخاصة بك
من ناحية ، يمكنك تحسين بيانات استعلام SQL لتحسين الكفاءة التشغيلية ، ومن ناحية أخرى ، يمكنك أيضًا استخدام الإجراءات المخزنة لتحسين الكفاءة التشغيلية. (تحتاج إلى إلقاء نظرة على محتوى قاعدة البيانات لهذه المعرفة ، ولن أتحدث عن كيفية تحسينها هنا.)
المقدمة أعلاه هي تجربتي العملية ، وقد لا تكون على ما يرام. إذا كان هناك نهج أفضل ، فيمكن أيضًا مناقشته.