Bagikan melalui


Menentukan Urutan Protokol

Aplikasi server harus memilih satu atau beberapa urutan protokol untuk digunakan saat berkomunikasi dengan klien melalui jaringan. Pilihan urutan protokol bergantung pada jaringan. Lihat Menginterpretasikan Informasi Pengikatan dan Memilih Urutan Protokol.

Program server Anda mungkin mengizinkan klien tersambung menggunakan urutan protokol apa pun yang didukung jaringan. Untuk melakukan ini, panggil RpcServerUseAllProtseqs dan lewatkan RPC_C_PROTSEQ_MAX_REQS_DEFAULT sebagai parameter pertama. Namun, itu bukan pendekatan yang direkomendasikan. Sebaliknya, menggunakan ncalrpc untuk panggilan lokal dan ncacn_ip_tcp atau ncacn_http untuk panggilan jarak jauh biasanya cukup. Jaringan heterogen jarang, dan hampir semua jaringan mendukung TCP/IP.

Jika Anda ingin klien membatasi alokasi port untuk titik akhir dinamis ke rentang port tertentu, panggil RpcServerUseAllProtseqsEx sebagai gantinya. Fungsi ini khusus untuk Microsoft RPC, dan sangat berguna untuk panggilan prosedur jarak jauh yang melewati firewall. Ini menggunakan parameter tambahan untuk meneruskan pengaturan alokasi port ke fungsi. Lihat Mengonfigurasi Registri untuk Alokasi Port dan Pengikatan Selektif.

Anda dapat menentukan urutan protokol dan informasi titik akhir dalam file MIDL anda saat mengembangkan antarmuka server. Jika ya, server Anda harus menggunakan RpcServerUseAllProtseqsIf untuk mendaftarkan semua urutan protokol dan informasi titik akhir terkait yang disediakan dalam file IDL. Selain itu, ada fungsi RpcServerUseAllProtseqsIfEx yang sesuai yang juga memungkinkan server untuk meneruskan kontrol alokasi port.

Jika Anda ingin mengonfigurasi program klien dan server Anda untuk berkomunikasi dengan urutan protokol tertentu, aplikasi server harus memanggil RpcServerUseProtseq. Untuk daftar lengkap urutan protokol Microsoft RPC, lihat Protocol Sequence Constants.

Microsoft RPC juga menyediakan RpcServerUseProtseqEx untuk memungkinkan aplikasi memilih urutan protokol tertentu dan mengontrol alokasi port dinamis.

Selain protokol berorientasi koneksi, Microsoft RPC juga mendukung protokol datagram (tanpa koneksi). Protokol berorientasi koneksi disarankan; protokol datagram memiliki set fitur yang berbeda dari protokol berorientasi koneksi, dan hanya boleh digunakan jika pengembang sistem terdistribusi memerlukan fitur yang hanya tersedia dalam protokol datagram. Beberapa fitur yang tersedia saat menggunakan protokol datagram adalah:

  • Datagram mendukung protokol transportasi tanpa koneksi UDP dan IPX.
  • Karena tidak perlu membuat dan memelihara koneksi, protokol RPC datagram membutuhkan lebih sedikit overhead sumber daya.
  • Datagram memungkinkan pengikatan yang lebih cepat.
  • Seperti halnya RPC berorientasi koneksi, panggilan RPC datagram secara default nonidempotent . Ini berarti panggilan dijamin tidak akan dijalankan lebih dari sekali. Namun, fungsi dapat ditandai sebagai idempotoen dalam file IDL yang memberi tahu RPC bahwa tidak berbahaya untuk menjalankan fungsi lebih dari sekali sebagai respons terhadap satu permintaan klien. Ini memungkinkan waktu eksekusi mempertahankan lebih sedikit status pada server. Perhatikan bahwa panggilan idempoten akan dijalankan kembali hanya dalam keadaan yang jarang terjadi pada jaringan yang tidak stabil.
  • Datagram RPC mendukung atribut IDL broadcast. Siaran memungkinkan klien mengeluarkan pesan ke beberapa server secara bersamaan. Ini memungkinkan klien menemukan salah satu dari beberapa server yang tersedia di jaringan, atau mengontrol beberapa server secara bersamaan. Perhatikan bahwa siaran datagram hanya valid dalam tautan lokal, dan biasanya tidak melintasi router. Panggilan siaran secara implisit idempoten. Jika panggilan berisi parameter [out] , hanya respons server pertama yang dikembalikan. Setelah server merespons, semua RPC mendatang yang menggunakan handle pengikat tersebut hanya akan dikirim ke server tersebut, termasuk panggilan dengan atribut siaran. Untuk mengirim siaran lain, buat handle pengikatan baru atau gunakan RpcBindingReset pada handle yang ada.
  • Datagram RPC mendukung atribut IDL mungkin. Ini memungkinkan klien mengirim panggilan ke server tanpa menunggu respons atau konfirmasi. Panggilan tidak boleh berisi parameter [out] . Panggilan yang menggunakan [mungkin] bersifat idempoten secara implisit.