Rumah > Java > javaTutorial > Bagaimanakah Anda Mengekod dan Menyahkod Mesej Penampan Protokol dalam C Menggunakan I/O Terhad?

Bagaimanakah Anda Mengekod dan Menyahkod Mesej Penampan Protokol dalam C Menggunakan I/O Terhad?

Mary-Kate Olsen
Lepaskan: 2024-10-28 17:14:29
asal
368 orang telah melayarinya

How Do You Encode and Decode Protocol Buffers Messages in C   Using Delimited I/O?

C Setara untuk Java's Protocol Buffers Delimited I/O Functions

Dalam kedua-dua C dan Java, timbul keperluan untuk membaca dan menulis berbilang Protokol Menampan mesej daripada fail. Java versi 2.1.0 menawarkan satu set fungsi I/O "Terhad" untuk tujuan ini:

  • parseDelimitedFrom
  • mergeDelimitedFrom
  • writeDelimitedTo
  • Fungsi ini memudahkan lampiran awalan panjang sebelum setiap mesej. Walau bagaimanapun, masih tidak jelas sama ada keupayaan sedemikian wujud dalam C .

    Kewujudan Setara C

    Pada mulanya, tiada setara C langsung untuk fungsi Java ini. Walau bagaimanapun, pada versi 3.3.0, C kini menampilkan fungsi utiliti mesej terhad dalam google/protobuf/util/delimited_message_util.h.

    Format Awalan Saiz

    Untuk pengguna yang ingin melaksanakan parser mereka sendiri dalam C sebelum keluaran utiliti rasmi ini, adalah penting untuk memahami format wayar untuk awalan saiz yang dilampirkan oleh API Java. Format mematuhi garis panduan berikut:

      Pembatas mesti ada walaupun sebelum mesej pertama.
    • Saiz mesej dikodkan sebagai varian 32-bit.
    • Bait pembatas 1 bait (0x0A) menamatkan setiap mesej dan mesej awalan panjang seterusnya bermula serta-merta selepas itu.

    Pelaksanaan C Dioptimumkan

    Susulan keluaran fungsi utiliti C rasmi, beberapa pengoptimuman ditemui yang tiada daripada pelaksanaan yang dicadangkan pada asalnya. Fungsi yang dioptimumkan ini, yang disediakan di bawah, menawarkan prestasi yang lebih baik dan mengelakkan kemungkinan ralat:

Atas ialah kandungan terperinci Bagaimanakah Anda Mengekod dan Menyahkod Mesej Penampan Protokol dalam C Menggunakan I/O Terhad?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan