Popularitas jaringan telah membuat program server banyak digunakan.
Beberapa orang mengatakan bahwa jika Anda ingin merancang server, Anda harus menggunakan VC untuk mendesainnya. , Jangan gunakan yang besar yang dibawa oleh Delphi. Saya akan memberi tahu Anda di bawah. Dengan cara ini, Anda menggunakan API untuk merancang server, yang tidak jauh berbeda dari VC.
Gunakan Delphi untuk merancang program server. Jika koneksi pengguna Anda kurang dari 1.000 dan jumlah data yang diproses tidak besar, Anda dapat menggunakan mode pesan formulir untuk mengembangkan server. server. Saya menyarankan agar semua orang terbaik untuk menggunakan mode port lengkap, karena Anda tidak dapat memastikan bahwa jumlah pengguna tidak berubah. , yang kemudian dapat memastikan lebih sedikit perawatan.
Sekarang perkenalkan apa yang perlu Anda perhatikan saat mengembangkan server Delphi:
1 Jangan gunakan variabel string di program Anda
Ini juga ditemukan selama proses pengembangan yang sebenarnya. Alasan setelah memeriksanya.
2 Gunakan algoritma enkripsi cepat seperti enkripsi XOR atau enkripsi DES
Server harus dienkripsi saat menyerahkannya ke klien, tetapi jenis algoritma enkripsi apa yang harus digunakan? Jangan gunakan algoritma yang membutuhkan banyak operasi, seperti RSA, dan algoritma lainnya. . Anda juga dapat menggunakan RSA untuk mengenkripsi ciphertext, tetapi ini akan menyebabkan server memproses secara perlahan, dan jika Anda menemukan banyak pemrosesan, mudah bagi server untuk menolak server.
3 Gunakan fungsi ADO asli untuk terhubung ke database
Program server biasanya dikombinasikan dengan database. Ini dapat dilakukan secara langsung menggunakan fungsi ADO yang sesuai. Terutama karena program server dan database biasanya merupakan operasi yang relatif sederhana dan tidak terlalu rumit. Jadi cukup gunakan mode ADO asli. Ini juga mengurangi masalah yang disebabkan oleh kontrol ADO.
4. Gunakan lebih banyak "kolam"
Selama proses desain server, Anda harus mendukung sejumlah besar variabel. Dan itu rentan terhadap masalah. Cobalah untuk tidak membuat dan melepaskan variabel selama proses desain. Ini dapat mempercepat kecepatan berjalan program dan mengurangi konflik. Bagaimana menggunakan teknologi biliar? Saya akan mempertimbangkan untuk menulis pengantar jika saya punya waktu di masa depan.
5 mahir menggunakan pointer
Jika Anda tidak terbiasa dengan operasi pointer, Anda hampir tidak akan pernah dapat merancang server yang efisien.
Berikut adalah contohnya.
var
A, B: Array [1..8] dari byte;
I: Integer;
ResultBuffer: array [1..max] byte;
Mulai
untuk i: = 1 hingga sizeof (buffer) div 8 do
Mulai
pindahkan (buffer [(i-1)*8+1], a, 8);
Des (a, b, true);
bergerak (b, resultBuffer [(i-1)*8+1], 8);
akhir;
akhir
Mari kita lihat kode di atas dan idenya sangat jelas, yaitu untuk menggunakan algoritma DES Decryption untuk mendekripsi menjadi B, dan kemudian memasukkannya kembali ke dalam hasil.
Jika Anda mahir dalam pointer, efisiensi Anda akan sangat ditingkatkan
var
A, B: Pbyte;
I: Integer;
ResultBuffer: array [1..max] byte;
Mulai
untuk i: = 1 hingga sizeof (buffer) div 8 do
Mulai
A: = @Buffer [(i-1)*8+1];
b: = @resultBuffer [(i-1)*8+1]
Des (a^, b^, true);
akhir;
akhir
Mari kita lihat kode di atas.
6 Gunakan fungsi WSASEND, WSARECV dan Winsocket 2 lainnya lebih sering, jangan gunakan Fungsi Kirim, RECV
Ini terutama tergantung pada sistem apa yang dijalankan server Anda.
7. Gunakan operasi kumpulan utas secara rasional
Server yang efisien harus menggunakan teknologi pengumpulan utas. Saya pribadi berpikir bahwa jika Anda ingin menggunakan teknologi pengumpulan utas, Anda harus berurusan dengan operasi yang paling memakan waktu, seperti operasi kueri basis data.
8 Jika server menggunakan konsep "pool", ada masalah lain.
Saya menggunakan kumpulan dalam banyak hal, seperti kumpulan utas, kumpulan data, dll. Ketika data tiba, bagaimana cara mengalokasikan kumpulan? Saya tidak akan memberi tahu Anda di sini, dan saya akan menulis artikel khusus tentang kumpulan di masa depan. Deskripsi terperinci tentang cara menggunakan kumpulan. Anda juga dapat memikirkannya sendiri.
9 Menggunakan fungsi manipulasi string yang efisien
Karena server harus menjalankan sejumlah besar string, itu akan memakan waktu jika Anda menggunakan fungsi yang disediakan oleh Delphi untuk beroperasi. bermanfaat bagi Anda.
10 Optimalkan Pernyataan Kueri SQL Anda
Di satu sisi, Anda dapat mengoptimalkan pernyataan kueri SQL untuk meningkatkan efisiensi operasional, dan di sisi lain, Anda juga dapat menggunakan prosedur tersimpan untuk meningkatkan efisiensi operasional. (Anda perlu melihat konten database untuk pengetahuan ini, dan saya tidak akan berbicara tentang cara mengoptimalkannya di sini.)
Pendahuluan di atas adalah pengalaman praktis saya, dan mungkin tidak baik. Saya harap semua orang dapat membantu. Jika ada pendekatan yang lebih baik, itu juga dapat dibahas.