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 teruskan RPC_C_PROTSEQ_MAX_REQS_DEFAULT sebagai parameter pertama. Namun, itu bukan pendekatan yang disarankan. Sebaliknya, menggunakan ncalrpc untuk panggilan lokal dan ncacn_ip_tcp atau ncacn_http untuk panggilan jarak jauh biasanya cukup. Jaringan heterogen jarang terjadi, dan hampir semua jaringan mendukung TCP/IP.

Jika Anda ingin klien membatasi alokasi port untuk titik akhir dinamis ke rentang port tertentu, hubungi 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 bendera kontrol 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 saat Anda mengembangkan antarmuka server. Jika Anda melakukannya, 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 bendera alokasi-kontrol port.

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

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 direkomendasikan; 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 dieksekusi 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 durasi untuk mempertahankan lebih sedikit status pada server. Perhatikan bahwa panggilan idempotensi akan dijalankan kembali hanya dalam keadaan langka pada jaringan yang tidak stabil.
  • Datagram RPC mendukung atribut IDL siaran . 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 idempotensi. Jika panggilan berisi parameter [keluar], hanya respons server pertama yang dikembalikan. Setelah server merespons, semua RPC di masa mendatang melalui handel pengikatan tersebut hanya akan dikirim ke server tersebut, termasuk panggilan dengan atribut siaran. Untuk mengirim siaran lain, buat handel pengikatan baru atau panggil RpcBindingReset pada handel 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 panggilan [mungkin] secara implisit idempotensi.