Tarmoq - Netstring

Yilda kompyuter dasturlash, a to'r uchun formatlash usuli hisoblanadi bayt satrlari satr hajmini ko'rsatish uchun deklarativ yozuvlardan foydalanadi.[1][2]

Tarmoq satrlari quyidagi ma'lumotlarning bayt uzunligini saqlaydi, shuning uchun matnlar va bayt ma'lumotlarini dasturlar o'rtasida birma-bir uzatishni osonlashtiradi, deb talqin qilinishi mumkin bo'lgan qiymatlarga sezgir bo'lishi mumkin. ajratuvchilar yoki terminatorlar (masalan, a null belgi ).

Format ASCII raqamlari yordamida yozilgan mag'lubiyat uzunligidan, so'ngra ikki nuqta, bayt ma'lumotlari va verguldan iborat. Ushbu kontekstdagi "uzunlik" "8 bitli birliklar soni" degan ma'noni anglatadi, shuning uchun agar satr, masalan, yordamida kodlangan bo'lsa UTF-8, bu satrda mavjud bo'lgan matnli belgilar soniga o'xshash bo'lishi yoki bo'lmasligi mumkin.

Masalan, "salom dunyo!" Matni quyidagicha kodlaydi:

<31 32 3a 68 65 6c 6c 6f 20 77 6f 72 6c 64 21 2c>

ya'ni

12:Salom Dunyo!,

Va bo'sh satr:

<30 3a 2c>

ya'ni

0:,

Vergul odamlarga qo'shni yozuvlar sifatida ishlatiladigan tarmoq satrlarini o'qishni biroz osonlashtiradi va to'g'ri tahlilni zaif tekshirilishini ta'minlaydi. Bencode qatorlarni kodlaydi.

Uzunlik oldingi nollarsiz yoziladi. Bo'sh satr - bu noldan boshlanadigan yagona to'r va har biri uchun to'liq bitta qonuniy tarmoq chizig'i mavjud bayt qatori.

Formatni yaratish oson bo'lgani uchun tahlil qilish, turli xil dasturlash tillarida yozilgan dasturlarni qo'llab-quvvatlash oson. Amalda, tarmoq torlari ko'pincha baytringlar yoki baytestringlar ro'yxatini almashtirishni soddalashtirish uchun ishlatiladi. Masalan, uning ishlatilishini ko'ring Oddiy umumiy shlyuz interfeysi (SCGI) va Tezkor pochta navbatida turish protokoli (QMQP).

Tarmoq torlari ajratilgan formatlarga o'zboshimchalik bilan ma'lumotlarni kiritishda paydo bo'ladigan asoratlardan qochishadi. Masalan, XML tarkibida ma'lum bir bayt qiymatlari bo'lmasligi mumkin va buning nontrivial birikmasini talab qiladi qochish va chegaralash, ishlab chiqarish paytida ko'p qismli MIME xabarlari ma'lumotlar mazmuni bilan to'qnashmasligi kerak bo'lgan ajratuvchini tanlashni o'z ichiga oladi.

Tarmoqlarni rekursiv tarzda saqlash mumkin. Satrlar ketma-ketligini kodlash natijasi bitta satr. Yuqoridagi "salom dunyo!" Ni qayta yozish Buning o'rniga bitta to'r qatori sifatida kodlangan ikkita to'rning ketma-ketligi quyidagilarni beradi:

17:5:Salom,6:dunyo!,,

Bunday ichki to'rni ajratib ko'rsatish bu misoldir o'rdak terish, o'z ichiga olgan satr ("5: salom, 6: dunyo !,") ham mag'lubiyat, ham to'rlarning ketma-ketligi. Uning samarali turi dasturning uni qanday izohlashi bilan belgilanadi, aniqrog'i torli spetsifikatsiyasi uchun talab qilinadigan har qanday aniq turdagi deklaratsiya bilan emas. Umuman olganda, tarmoq satrini kutayotgan dastur uning tarkibini sharhlashni tanlashi mumkin bo'lgan uchta usul mavjud:

Shuni esda tutingki, tarmoq torlari saqlanadigan ma'lumotlarning tarkibida hech qanday cheklovlar mavjud emas, shuning uchun tarmoq satrlarini chegaralangan formatga xalaqit berish imkoniyatisiz ko'p ajratilgan formatlarga so'zma-so'z kiritish mumkin emas.

Tarmoq dasturlashi nuqtai nazaridan qabul qiluvchi dasturga quyidagi ma'lumotlarning hajmi to'g'risida ma'lumot berish mumkin, chunki u mumkin ajratmoq to'liq xotira, ko'proq ma'lumotlarni joylashtirish uchun qayta taqsimlash zaruriyatidan saqlaning va bunday ma'lumotlarni oldindan rad eting kattalik chegaralaridan oshib ketish.

Shuningdek qarang

Izohlar va ma'lumotnomalar

  1. ^ tomonidan hujjatda belgilangan D. J. Bernshteyn.
  2. ^ Masalan, qarang. Python veb-dasturlash Stiv Xolden tomonidan, Devid M. Bizli Sams Publishing tomonidan nashr etilgan, 2002 yISBN  0-7357-1090-2, 978-0-7357-1090-0691 betlar, 202 bet.
  3. ^ Caolan McMahon."Bencoding".
  4. ^ "TNetstrings spetsifikatsiyasi". Arxivlandi asl nusxasi 2014-02-10.
  5. ^ tnetstring-rb
  6. ^ "tnetstring: belgilangan strstring spetsifikatsiyasi"
  7. ^ "tnetstring: terilgan tarmoq yordamida ma'lumotlarni ketma-ketlashtirish"

Tashqi havolalar